使用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)
但是,我想查询{em> location1
和location2
之间的第三个位置。
例如,假设location1
是墨尔本市中心,而location2
是公园上的咒语-我可以查询矩形内的位置吗?
答案 0 :(得分:1)
GeoFirestore通过基于GeoHash查询文档开始。这将导致一个大致为矩形的形状,然后GeoFirestore将其在内存中减小checking the actual distance of each document from the center到请求的范围。
虽然GeoFirestore不支持以矩形形式返回所有文档,但修改库以不进行距离过滤应该相当容易。