【问题标题】:Flyover in Google Maps for iOSiOS 版 Google 地图中的天桥
【发布时间】: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


    【解决方案1】:

    给定的代码几乎是正确的,但需要删除一行:

    [myMapView animateToCameraPosition: camera2];

    因为这一行当CATransaction完成第一个地图设置到相机位置因为这行代码:

    [myMapView animateToCameraPosition:camera];

    但是当 ma​​p camera 设置为 camera2 时,GMSCamera 将设置为 camera2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2019-03-01
      相关资源
      最近更新 更多