【发布时间】:2020-01-06 15:35:44
【问题描述】:
我正在为我的一个项目使用 Yandex Mapkit iOS SDK。
看来SDK允许添加地标是一个集群。但是我不能像添加地标为mapObject 一样使用userData 添加自定义地标。我想检测标记上的点击动作。
// adding markers as mapobjects:
let point = YMKPoint(coordinate: CLLocationCoordinate2D(latitude: Double(hit.geom!.lat ?? 0), longitude: Double(hit.geom?.lon ?? 0)))
let placemark: YMKPlacemarkMapObject
self.mapObjects = self.mapView.mapWindow.map.mapObjects
placemark = mapObjects!.addPlacemark(with: point, image: #imageLiteral(resourceName: "marker"))
placemark.userData = MarkerUserData(id: Int(hit.id!)!, description: hit.plate!)
placemark.isDraggable = false
placemark.addTapListener(with: self)
mapObjects!.addListener(with: self)
在集群中添加标记,可以仅使用YMKPoint 将标记添加到集群中。我找不到在集群内添加placemark 对象的方法
let point = YMKPoint(coordinate: CLLocationCoordinate2D(latitude: Double(hit.geom!.lat ?? 0), longitude: Double(hit.geom?.lon ?? 0)))
let placemark: YMKPlacemarkMapObject
collection.addPlacemark(with: point, image: #imageLiteral(resourceName: "marker"))
// Placemarks won't be displayed until this method is called. It must be also called
// to force clusters update after collection change
collection.clusterPlacemarks(withClusterRadius: 20, minZoom: 5)
【问题讨论】:
-
仅供参考:大量使用集群和地图,我可以推荐支持 Yandex Mapkit 的 an excellent library。这个库简化了我的工作并解决了与从模型中挖掘和传输数据到用户的定义相关的问题。
标签: ios swift yandex-mapkit