Google 映射自定义信息窗口多个标记

Google Maps Custom InfoWindow Multiple Markers

我已经在我的项目中实现了自定义 Google 地图标记信息窗口,但是,在地图上添加多个标记时,我不知道如何将额外数据传递给自定义信息窗口。我创建了一个全局变量,该变量在添加每个标记之前进行了更新,但这不起作用。

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

...
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 委托只被调用一次,因此只加载这些变量一次。非常感谢任何指导。

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