2016-10-29 2 views
1

У меня есть приложение, которое использует карту Mapbox на своем iOS SDK и присутствует на нем маркеры (MGLPointAnnotation).Динамическое изменение изображения MGLPointAnnotation на Mapbox iOS SDK

Я хочу изменить изображение маркера при его выборе.

MGLPointAnnotation не имеет свойства image, и я попытался вызвать метод делегирования mapView(mapView, imageForAnnotation annotation), но это не сработало.

Любая идея, как я могу это сделать?

Спасибо!

ответ

0
  1. Я уверен, что нет никакого способа изменить аннотацию после того, как была добавлена ​​к карте (за исключением это annotationView)

  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/

Смежные вопросы