如何将位置发送到Firestore并根据距离获取位置?

时间:2019-07-02 10:16:55

标签: android google-cloud-firestore geofirestore

在我的应用程序中,我想发送(也许通过查询)用户的地理位置(userLocation),该地理位置的汽车发生故障并且被困。作为回应,我想找回愿意联系滞留用户的所有维修店。每个Repair_Shop Firestore文档都包含其地理位置(shopLocation)和一个以km为单位的数字serviceDistance,即服务半径(serviceRadius)。我想对Repair_Shop集合中满足标准serviceDistance <= | userLocation-shopLocation |的所有文档进行答复。

我已经阅读了GeoFirestore文档,但不确定如何实现此目的。自然,无法在前端进行计算。但是,作为查询发送的内容是什么?如果可能的话,如何对Firestore API进行操作,以便获得所需的文档快照?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用单个地理查询无法做到这一点。原因很简单:在北极地区可能有一家修理厂愿意行驶10,000公里为一辆滞留的车辆提供服务。因此,您基本上总是必须请求所有商店,然后在客户端对它们进行排序/过滤。

此问题基本上与以下问题相同:

正如我在此处回答的那样,最好的选择是从一个合理的范围开始,并查询该范围内的所有文档。如果仍然无法解决问题,请尝试更大的范围。