我通过for循环创建了GMSMarker,但是GMSMarker不支持标记
for(int i=0;i<[self.shopDetailArray count];i++)
{
SHShopLocator *shop = [self.shopDetailArray objectAtIndex:i];
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(22.2783, 114.1589);
marker.icon = [UIImage imageNamed:@"StoreLocator_pin"];
marker.infoWindowAnchor = CGPointMake(0.3, 0.4);
marker.map = self.map;
}
所以在设置自定义markerInfoWindow时如何识别每个标记?
- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
最佳答案
您可以使用GMSMarker
的 userData 属性。您可以存储每个标记的标识符!
例
GMSMarker *marker = [[GMSMarker alloc] init];
marker.userData = @{@"marker_id":[NSNumber numberWithInt:12]};
在以下位置检索其值:
- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
{
NSNumber *number = [marker.userData objectForKey:@"marker_id"];
return mapView;
}
文献资料
标记数据。您可以使用此属性来关联任意
带有此标记的对象。 iOS版Google Maps SDK既不读取也不读取
写入此属性。请注意,userData不应包含任何强项
对任何Maps对象的引用,否则可能会创建循环
(防止ARC释放对象)。