在GMSMapView位置更新GMSCameraPosition不起作用

时间:2016-02-24 19:22:16

标签: ios objective-c iphone cocoa-touch google-maps-sdk-ios

我有一个应用程序,其上有一个包含大量标记的地图,应用程序会在他接近其中一个标记时通知用户。我使用Google Maps iOS SDK作为地图,这意味着我使用GMSMapView作为地图视图(mapView)。

我想要当用户通过通知打开应用程序(点击通知)时,地图的相机会自动指向通知的标记。

我试图这样做:

AppDelegate.m

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    NSString *markerIdentifier=[[notification userInfo] objectForKey:@"markerIdentifier"];
    GMSMarker *marker=[self markerForIdentifier:markerIdentifier];

    [self.aroundersVC.mapView setSelectedMarker:storeMarker];

    //Important part:
    [self.aroundersVC animateMapToMarkerPosition:storeMarker];

}

AroundersViewController

-(void)animateMapToMarkerPosition:(GMSMarker*)marker
{
    GMSCameraPosition *currentLocationCameraPosition=[GMSCameraPosition cameraWithLatitude:marker.position.latitude longitude:marker.position.longitude zoom:16];
    [self.mapView animateToCameraPosition:currentLocationCameraPosition];
}

但由于某些原因它没有工作,有人知道为什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用GMSMapview委托

    -(void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position
      {

         // Do your stuff here 
      }

这可以解决您的问题。