#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)