【发布时间】:2017-04-13 23:24:58
【问题描述】:
我正在尝试使用适用于 iOS 的谷歌地图 SDK 在我的应用程序中进行慢速飞行。
我当前的设置如下所示:
-(void)viewDidLoad
{
[super viewDidLoad];
locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
[locationManager startUpdatingHeading];
CLLocation *location = [locationManager location];
CLHeading *heading = [locationManager heading];
CLLocationCoordinate2D coordinate = [location coordinate];
CLLocationDirection direction = [heading trueHeading];
//double latitude = coordinate.latitude;
//double longitude = coordinate.longitude;
//double deviceHeading = (direction*M_PI/180);
//NSLog (@"my longitude :%f",deviceHeading);
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40.7080 longitude:-74.0103 zoom:17 bearing:50 viewingAngle:90];
myMapView.myLocationEnabled = YES;
myMapView.settings.scrollGestures = NO;
myMapView.settings.zoomGestures = NO;
myMapView.settings.tiltGestures = NO;
NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *styleUrl = [mainBundle URLForResource:@"GoogleMapsStyle" withExtension:@"json"];
NSError *error;
[myMapView animateToCameraPosition:camera];
// Set the map style by passing the URL for style.json.
GMSMapStyle *style = [GMSMapStyle styleWithContentsOfFileURL:styleUrl error:&error];
if (!style) {
NSLog(@"The style definition could not be loaded: %@", error);
}
myMapView.mapStyle = style;
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat: 30] forKey:kCATransactionAnimationDuration];
GMSCameraPosition *camera2 = [GMSCameraPosition cameraWithLatitude: 40.9234 longitude: -74.3456 zoom: 17];
[myMapView animateToCameraPosition: camera2];
[CATransaction commit];
}
我在这里找到了 CATransaction:
Controlling Animation Duration in Google Maps for iOS
但是,当我加载视图时,地图在 CATransaction 期间为空白,然后地图在 camera2 位置加载。有没有办法解决这个问题或更好的解决方法?
谢谢
【问题讨论】:
标签: ios objective-c google-maps