Swift - Получение гео-точек из Firestore, как отображать их как аннотации карты - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть следующий код, который возвращает координаты, которые я сохранил в Google Firestore:

    let locationsRef = db.collection("locatioInfo")
    locationsRef.getDocuments { (querySnapshot, err) in
        if let err = err {
            print("Error receiving Firestore snapshot: \(err)")
        } else {
            for document in querySnapshot!.documents {
                print("\(document.documentID) => \(document.data())")
            }
        }
    }

, который производит этот вывод:

location1 => ["geopoint": <FIRGeoPoint: (50.086421, 14.452333)>]
location2 => ["geopoint": <FIRGeoPoint: (50.086442, 14.452268)>]

Мой вопрос: как мне преобразовать выбранные FIRGeoPoints в CLLocationCoordinates2D или просто: как я могу использовать эти координаты и показать их на карте?

У меня есть MKAnnotationView уже настроенное объявление, которое использовало его для жестко закодированных координат, теперь мне нужно отобразить извлеченные координаты. Надеюсь, это достаточно ясно, заранее спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Я думаю, что вы спрашиваете, как получить широту и долготу из геопункта Firestore (??).Попробуйте, и если это не то, о чем вы просите, дайте мне знать, и я отредактирую.

предположим, что на мгновение у вас есть структура Firestore, подобная этой

coordinates
   point_0
       coords: [49N, 44E]
   point_1
       coords: [67N, 30E]

, а затем прочитайте ее ви получите лат и долг.

self.db.collection("coordinates").getDocuments() { (querySnapshot, err) in
    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        for document in querySnapshot!.documents {
            if let coords = document.get("coords") {
                let point = coords as! GeoPoint
                let lat = point.latitude
                let lon = point.longitude
                print(lat, lon) //here you can let coor = CLLocation(latitude: longitude:)
            }
        }
    }
}

, и результат будет

49.0 44.0
67.0 30.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...