当用户点击地图标记时,我将显示自定义视图(带有其类的笔尖)。当用户点击其中一个标记时,我还想从对象中显示所选对象的数据。我用单独的方法从同一数组创建标记。当用户点击标记时,如何获取数组中的元素(以显示其他数据)?还是有另一种方法可以基于按下的标记从数组中获取对象。除了基于lon和lat等的正则表达式之外?
GMSMapViewDelegate具有委托功能,可让您将customView作为信息窗口返回。
optional public func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView?
您必须继承GSMarker的子类,后者会将模型放入init中。
class MapItem:GMSMarker {
var model: Model! //your data model
init(data: Model) {
super.init()
// pass cordinate
self.position = CLLocationCoordinate2D(latitude: data.latitude!, longitude: data.longitude!)
// pass Model
self.model = data
}
}
func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
// Wrap GSMarker to your custom marker which is MapItem here
let customMarker = marker as! MapItem
// pass your model to CustomView(marker info window) in init
let customView = CustomView(markerModel: customMarker.model)
return customView
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。