谷歌映射ios问题

时间:2013-04-19 23:31:37

标签: ios google-maps-sdk-ios

我正在学习为iOS开发。我正在使用Google Maps API for iOS来制作地图。我已经在我的项目中添加了一个视图,我已将其放在我的检查器元素中,如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];,但也不行。

任何人都可以帮助我?

1 个答案:

答案 0 :(得分: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];

    });
}