我正在尝试使用自定义注释来集群我的mapView,但永远不会调用集群。这是我的代码:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation{
return nil
}
let an = MKAnnotationView.init(annotation: annotation, reuseIdentifier: "AD")
an.clusteringIdentifier = (annotation as! StopAnnotation).id!.joined(separator: "_")
an.image = #imageLiteral(resourceName: "face")
return an
}
这永远不会触发群集,我也实现了这个委托:
func mapView(_ mapView: MKMapView, clusterAnnotationForMemberAnnotations memberAnnotations: [MKAnnotation]) -> MKClusterAnnotation {
return MKClusterAnnotation(memberAnnotations: memberAnnotations)
}
也从未打过电话。我做错了什么?
答案 0 :(得分:3)
确保clusteringIdentifier
对每个群集都不是唯一的。由于您正在通过(annotation as! StopAnnotation).id!
,我猜测它是uniq。
来自Apple文档:
当地图表面上的多个注释视图与相同标识符之间发生碰撞时,会发生聚类。
您可以阅读更多here。