在Mapbox iOS SDK上dynamic更改MGLPointAnnotation图像

我有一个应用程序在其iOS SDK上使用Mapbox的地图, Mapbox在其上显示标记( MGLPointAnnotation )。

我想在选中时更改标记的图像。

MGLPointAnnotation没有image属性,我试图调用委托方法mapView(mapView, imageForAnnotation annotation)但它没有工作。

任何想法我怎么能做到这一点?

谢谢!

  1. 我很确定,在添加到地图之后没有办法改变注释(除了它是一个注解视图)

  2. mapView(mapView, imageForAnnotation annotation)只有在添加注释时才被调用。

  3. 你可以做的是使用didselect delegete

    func mapView(_ mapView: MGLMapView, didSelect annotationView: MGLAnnotationView){ //code }

并在相同的位置设置一个新的注释,但这次是与您想要的图像。 然后图像注释代理被调用,在那里定义你的图像

 func mapView(_ mapView: MGLMapView, imageFor annotation: MGLAnnotation) -> MGLAnnotationImage? { //code } 

以下是客户标记图片的示例: https : //www.mapbox.com/ios-sdk/examples/marker-image/