[英]Swift - Retrieving Geopoints from Firestore, how to show them as map annotations
我有以下代码检索我存储在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
已经设置广告用于硬编码坐标,现在我需要显示获取的坐标。 希望这很清楚,在此先感谢。
我想你要问的是如何从Firestore geopoint(??)中推导出纬度和经度。 试试这个,如果不是你问的问题,请告诉我,我会编辑。
假设你有一个像这样的Firestore结构
coordinates
point_0
coords: [49N, 44E]
point_1
coords: [67N, 30E]
然后阅读那些并获得lat和lon。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.