领域地图集群的自定义视图

时间:2017-04-20 12:28:26

标签: swift mkmapview realm

至于我阅读用于地图聚类的领域文档时,有一个类ABFClusterAnnotationView,它具有很少的属性:countcolorcountLabel但我找不到任何地方image用于注释。添加override属性是image的方法吗?我设法通过使用默认注释iside images委托方法添加mapView但是从那里我无法管理集群计数。我想仅在地图上只有1个引脚的地方更改图像。

所以没有什么棘手的,简单的设置注释的图像:

 func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {

        let annView = MKAnnotationView(annotation: annotation, reuseIdentifier: "test")
        annView.image = myImage

        return annView
    }

提前致谢!

1 个答案:

答案 0 :(得分:1)

不会覆盖恕我直言的图像属性。但无论如何你还有几个选择:

  1. 请勿使用ABFClusterAnnotationView。 (使用例如MKAnnotationView
  2. 使用FBAnnotationClusterView, 设置FBAnnotationClusterViewConfiguration并在模板中使用FBAnnotationClusterDisplayMode.Image(imageName)
  3. 使用不同的库 - https://github.com/efremidze/Cluster
  4. 广告1)

    override func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
            switch annotation {
            case _ as MyAnnotation:
                // use MKAnnotationView
                let reuseId = "Pin"
                return mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKPinAnnotationView ?? MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
            case let fbAnnotation as FBAnnotationCluster:
                let reuseId = "Cluster"
                let clusterView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) ?? FBAnnotationClusterView(annotation: fbAnnotation, reuseIdentifier: reuseId, configuration: FBAnnotationClusterViewConfiguration.default())
                return clusterView
            default:
                return nil
            }
    }