如何将自定义数据添加到标记(Google 地图 API SWIFT)
How to add custom data to marker (Google Maps API SWIFT)
我正在想办法为我的标记添加自定义 properties/data。
我用过的
- Marker.Title(店铺名称)
- Marker.Snippet(存储对象 ID)
- Marker.Icon(商店图标)
- Marker.userData(存储
图片)
我想存储以显示在 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
我正在想办法为我的标记添加自定义 properties/data。
我用过的
- Marker.Title(店铺名称)
- Marker.Snippet(存储对象 ID)
- Marker.Icon(商店图标)
- Marker.userData(存储 图片)
我想存储以显示在 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