我有以下代码可检索我存储在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
广告已用于硬编码坐标,现在我需要显示提取的坐标。希望这已经足够清楚了,谢谢。
答案 0 :(得分:3)
我认为您要问的是如何从Firestore地理位置(??)得出纬度和经度。尝试一下,如果不是您要的,请告诉我,我将进行编辑。
暂时假设您具有这样的Firestore结构
HttpLoggingInterceptor
然后阅读其中的内容并获取经度和纬度。
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:)
}
}
}
}