0

我正在学习为 iOS 开发。我正在使用适用于 iOS 的 Google Maps API 来制作地图。我在我的项目中放入了一个视图,该视图已放入我的检查器元素中,例如 GMSMapView。

在我的代码中,我将此代码放在下面:

- (void) setMapView:(GMSMapView *)mapView {

    if (!mapView) {
        mapView = [[GMSMapView alloc] initWithFrame:mapView.bounds];
    }

    googleMap = mapView;

}

该地图有效,但我想在这张地图上设置我的相机。在viewDidLoad函数上,我把这段代码放在下面:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:12];

self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

但谷歌地图只是在伦敦加载这张地图,我不知道为什么。这协调它来自悉尼。我已经尝试过googleMap = [GMSMapView mapWithFrame:CGRectZero camera:camera];,但也不起作用。

任何人都可以帮助我吗?

4

1 回答 1

1

我有同样的问题。分配地图后,您可以通过动画到相机位置来修复它。我在动画到新的摄像机位置之前添加了延迟。这行得通。

- (void)viewDidLoad
{
    self.mapView = [[GMSMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; // Any Frame

    double delayInSeconds = 0.2;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

        GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                                longitude:151.2086
                                                                     zoom:12];

        [self.mapView animateToCameraPosition:camera];

    });
}
于 2013-04-20T21:06:23.807 回答