Я пытаюсь получить номер рейса, широту и долготу из всех документов Firestore и добавить их как аннотации Mapbox в mapView.Пока что код извлекает данные из Cloud Firestore и сохраняет их как переменные.Кроме того, код отображает карту Mapbox с координатами, но они должны быть назначены вручную в массиве
У меня проблемы с добавлением переменных из Firestore в массив координат.
Я нашел это «Добавить аннотацию после извлечения широты и долготы пользователей из Firebase» , которая была вдоль правильных линий, но это связано с firebase, а не с firestore.
Любая помощь будет принята с благодарностью!
class HomeViewController: UIViewController, MGLMapViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let mapView = MGLMapView(frame: view.bounds)
mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
mapView.styleURL = MGLStyle.darkStyleURL
mapView.tintColor = .lightGray
mapView.centerCoordinate = CLLocationCoordinate2D(latitude: 0, longitude: 66)
mapView.zoomLevel = 2
mapView.delegate = self
view.addSubview(mapView)
var aircraftArray = [""]
let db = Firestore.firestore()
let AircraftRef = db.collection("LiveAircraftData").getDocuments { (snapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in snapshot!.documents {
let FlightNumber = document.documentID
let latitude = document.get("Latitude") as! Double
let longitude = document.get("Longitude") as! Double
print(FlightNumber, latitude, longitude)
var Coordinates = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
aircraftArray.append(Coordinates)
var pointAnnotations = [MGLPointAnnotation]()
for coordinate in Coordinates {
let point = MGLPointAnnotation()
point.coordinate = coordinate
point.title = "\(coordinate.latitude), \(coordinate.longitude)"
pointAnnotations.append(point)
}
mapView.addAnnotations(pointAnnotations)
}
}
}
}
Вот так выглядит моя база данных
скриншот кода