1

使用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)

但是,我想查询 和 之间的第三个位置location1location2

例如,考虑location1墨尔本中心和location2公园的曼特拉 - 我可以查询矩形内的位置吗?

在此处输入图像描述

4

1 回答 1

1

GeoFirestore 首先基于 GeoHash 查询文档。这会导致大致矩形形状,然后 GeoFirestore 通过检查每个文档与 center 的实际距离,将其在内存中缩小到请求的范围。

虽然 GeoFirestore 不支持开箱即用地返回矩形形状的所有文档,但修改库以不进行距离过滤应该相当容易。

于 2019-07-05T23:16:19.393 回答