mapView:didTapMarker没有选择标记

时间:2016-02-22 17:51:35

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

我有一个带有很多标记的GMSMapView,每个标记代表我的客户的一个商店,每次用户接近其中一个标记(到其中一个商店)时,他都会收到一个地址通知商店。

我希望当用户点按通知(通过通知打开应用)时,标记将显示在地图上(已选中)。

注意:标记是每个Store对象的属性,UILocalNotification存储Store对象的标识符,以及我如何找到正确的商店

注意2:我正在使用Google Maps iOS SDK

我试图这样做:

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{   
    NSString *storeIdentifier=[[notification userInfo] objectForKey:@"storeIdentifier"];
    Store *notificationsStore=[self.monitorLocationVC storeForIdentifier:storeIdentifier];

    [self.myVC mapView:self.myVC.mapView didTapMarker:notificationsStore.marker];
}

出于某种原因,当用户打开应用程序时,不会选择标记。

我已mapView: didTapMarker:覆盖myVC.m,就像那样:

-(BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker
{
    return NO;
}

2 个答案:

答案 0 :(得分:0)

didTapMarker位于GMSMapViewDelegate,地图会调用该代码来通知您的代码已点击标记。它没有点击标记。

但是,您可以在地图视图上设置selectedMarker,以便选择该标记,并显示其信息窗口(如果有)。例如:

self.myVC.mapView.selectedMarker = notificationsStore.marker;

有关更多示例,请参阅此处:How to show a Info window in iOS Google maps without tapping on Marker?

答案 1 :(得分:0)

 -(BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker
  {
      viewIwant.hidden=NO;
     //or any nib you want 
      return YES;
  }