Mapbox MGLAnnotations не отображается в MapView для Mapbox iOS

#swift #mapbox #mapbox-ios

#swift #mapbox #mapbox-ios

Вопрос:

Я тестировал использование MapBox для своего приложения SwiftUI, но я столкнулся с проблемами, когда мои аннотации не отображаются в моем MapView, даже если они, похоже, были добавлены. Мой код для моей команды updateAnnotations, которая вызывается в updateUIView, является:

     private func updateAnnotations() {
        if let currentAnnotations = mapView.annotations {
            mapView.removeAnnotations(currentAnnotations)
        }
        
        for marker in devices.positions {
            let annotation = MGLPointAnnotation(title: marker.name, coordinate: marker.coordinate)
            mapView.addAnnotation(annotation)
            print("ADDED (annotation)")
            print(mapView.annotations)
        }
    }
 

devices это @ObservedObject, содержащий positions массив точек с заголовком и координатами для построения графика. Мой вывод из этого кода:

 ADDED <MGLPointAnnotation: 0x285abc9f0; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>
Optional([<MGLPointAnnotation: 0x2866b7c60; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>])
 

Для меня это не имеет смысла — вывод предполагает, что аннотация была создана, но она не отображается на карте. Буду признателен за любую помощь.

Ответ №1:

Вам необходимо передать MapView при использовании SwiftUI — например, изменить updateAnnotations() на updateAnnotations(_ mapView: MGLMapView)