Задать вопрос
emmi
@emmi
iOS разработчик

YndexMapKit. Как получать данные объекта для отображения в инфобоксе?

Добрый день.
Необходимо отображать данные объекта в небольшом инфобоксе внизу.

Вот что я делаю сейчас:

1. Подписалась на слушателя YMKMapObjectTapListener
2. Добавила слушателя к своим mapObjects

override func viewDidLoad() {
        super.viewDidLoad()
        let mapObjects = mapView.mapWindow.map.mapObjects
        mapObjects.addTapListener(with: self)
}


3. В делегат методе пытаюсь получить данные mapObject, которые типа Any? и всегда nil

class AddressesViewController: UIViewController, YMKMapObjectTapListener {
    
    func onMapObjectTap(with mapObject: YMKMapObject, point: YMKPoint) -> Bool {
        guard let placemark = mapObject as? YMKPlacemarkMapObject else { return false }
        let data = placemark.userData
        print(data)
        return true
    }


Проблемы:

а) Как получать данные объекта правильно?
б) Делегат метод
onMapObjectTap(with mapObject: YMKMapObject, point: YMKPoint)
вызывается не всегда, надо несколько раз кликнуть, чтобы попасть, тем временем в логах постоянно высвечиваются сообщения типа "No 'name' attribute in object 1923987 in layer mapj".
Никаких других слушателей у меня не добавлено, тогда в чем же проблема?
Буду очень рада помощи!
  • Вопрос задан
  • 369 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы