使用GeoFirestore,我可以查询一个位置(经/纬度)以查看我的集合/数据库中的任何位置是否在某个半径内:
val collectionRef = FirebaseFirestore.getInstance().collection("locations")
val geoFirestore = GeoFirestore(collectionRef)
val location1 = GeoPoint(37.7832, -122.4056)
val location2 = GeoPoint(37.3832, -121.4056)
val geoQuery = geoFirestore.queryAtLocation(location1, 0.6)
但是,我想查询
location1
和location2
之间的第三个位置。例如,假设
location1
是Melbourne Central,而location2
是Mantra在公园上-我可以查询矩形内的位置吗?最佳答案
GeoFirestore首先根据GeoHash查询文档。这将导致一个大致为矩形的形状,然后GeoFirestore将其在内存中减小为checking the actual distance of each document from the center请求的范围。
开箱即用不支持以矩形形状返回所有文档,但修改库以不进行距离过滤应该很容易。