我有一个带有很多标记的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;
}
答案 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;
}