如何将自定义数据添加到标记(Google 地图 API SWIFT)

How to add custom data to marker (Google Maps API SWIFT)

我正在想办法为我的标记添加自定义 properties/data。

我用过的

我想存储以显示在 InfoWindow

上的其他信息

如果有更有效的方法来存储和检索自定义 data/properties 以显示在信息窗口上,那就太好了。目前任何建议都是有价值的。

这是我目前拥有的片段: 设置标记数据:

 marker.title = object["objectTitle"] as! String
 marker.snippet = objecti.objectId
 marker.icon = UIImage(named:"markerImage")
 marker.userData = UIImage(data:imageData!)

信息Window:

func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
    var infoWindow :CustomInfoWindow = NSBundle.mainBundle().loadNibNamed("eventInfo", owner: self, options: nil)[0] as! CustomInfoWindow

    infoWindow.eventTitle.text = marker.title

    infoWindow.Image.image = marker.userData as? UIImage
    marker.userData = UIImage(data:imageData!)
     marker.snippet = object.objectId
    return infoWindow
}

我刚开始学习时遇到了你的问题Swift,但你认为这样的方法行得通吗:

var myData = Dictionary<String, Any>()
myData["image"] = UIImage(data:imageData!)
myData["description"] = "The description"
myData["number"] = 1
marker.userData = myData

这是我最近才学到的一种存储多种数据类型的技术。

我创建了一个包含我需要的所有数据的结构并将其放入 marker.userdata 因为它支持任何类型。

let data = structName(lat: place.lat, long: place.long) // initialize struct
marker.userData = data

这样访问:

let markerLat = (marker.userData as! structName).lat
let markerLong = (marker.userData as! structName).long