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 字段中设置了我需要的额外数据。我用我选择的分隔符号分隔小段数据,然后解析字符串以填充我需要的其他字段。这足以解决我面临的问题。
我已经在我的项目中实现了自定义 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 字段中设置了我需要的额外数据。我用我选择的分隔符号分隔小段数据,然后解析字符串以填充我需要的其他字段。这足以解决我面临的问题。