Firestore附近的geoquery无法正常工作

时间:2018-04-18 08:01:44

标签: swift geolocation google-cloud-firestore

我已经看到here您可以在Firestore中运行附近的地理查询。

我正在使用Ryan Lee的代码,但代码确实返回纬度或经度范围内的点,而不是两者都取决于什么" whereField"我放在前面。

另外一些人也有同样的问题,我该如何解决?

func getDocumentNearBy(latitude: Double, longitude: Double, distance: Double) {

// ~1 mile of lat and lon in degrees
let lat = 0.0144927536231884
let lon = 0.0181818181818182

let lowerLat = latitude - (lat * distance)
let lowerLon = longitude - (lon * distance)

let greaterLat = latitude + (lat * distance)
let greaterLon = longitude + (lon * distance)

let lesserGeopoint = GeoPoint(latitude: lowerLat, longitude: lowerLon)
let greaterGeopoint = GeoPoint(latitude: greaterLat, longitude: greaterLon)

let docRef = Firestore.firestore().collection("locations")
let query = docRef.whereField("location", isGreaterThan: lesserGeopoint).whereField("location", isLessThan: greaterGeopoint)

query.getDocuments { snapshot, error in
    if let error = error {
        print("Error getting documents: \(error)")
    } else {
        for document in snapshot!.documents {
            print("\(document.documentID) => \(document.data())")
        }
    }
}

}

func run() {
    // Get all locations within 10 miles of Google Headquarters
    getDocumentNearBy(latitude: 37.422000, longitude: -122.084057, distance: 10)
}

0 个答案:

没有答案