Google地图自定义InfoWindow多个标记

时间:2015-11-14 23:40:48

标签: ios google-maps google-maps-sdk-ios

我已在我的项目中实施了自定义Google Maps Marker InfoWindow,但是,我不知道在地图上添加多个标记时如何将额外数据传递到自定义InfoWindow。我创建了一个全局变量,在添加每个标记之前更新,但这不起作用。

到目前为止,这是我的代码:

...
NSString *markerDesc;
NSString *markerTimeLeft;
NSString *markerDistance;
...

- (UIView *) mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
{
  CustomInfoWindow *infoWind = [[[NSBundle mainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0];

  infoWind.lblTitle.text = marker.title;
  infoWind.imgCategory.image = marker.icon;
  infoWind.lblTimeLeft.text = markerTimeLeft;
  infoWind.lblDistance.text = markerDistance;
  infoWind.txtDescription.text = markerDesc;

  return infoWind;
}

标题和图标显示正常。其他(markerTimeLeft,markerDistance,markerDesc)显示但显示每个标记的相同数据。我觉得这是因为markerInfoWindow委托只被调用一次,因此只加载那些变量一次。任何方向都非常感谢。

1 个答案:

答案 0 :(得分:0)

作为解决方法,我使用我需要的额外数据设置marker.title和marker.snippet字段。我用我选择的分隔符符号分隔了小段数据,然后解析了字符串以填充我需要的其他字段。这足以解决我所面临的问题。