0

我的 firebase 数据库中给出了用户列表及其位置(经纬度)和半径(公里),有效地定义了各个“行动圈”,例如

{
  "users": {
    "foo": {
      "lat": 11.2549387,
      "long": 17.3419559,
      "radius": 50
    },
    "bar": {
      "lat": 9.5123445,
      "long": 17.1221547,
      "radius": 80
    }
  }
}

我现在的目标是查询其圈子覆盖特定位置的所有用户(同样是 long 和 lat)。由于用户列表可能很长,因此每次简单地计算每个用户到该位置的距离是没有意义的。

我知道GeoFire for JavaScript,但这并不能完全解决我的问题,因为它不适合非固定半径的计算。

解决方案应该是客户端 (JavaScript) 或作为云功能。有什么想法吗?

4

1 回答 1

0

那么 GeoFire 是您的解决方案,因为它会为您优化查询。

我知道 JavaScript 的 GeoFire,但这并不能完全解决我的问题,因为它不适合具有非固定半径的计算。

它适用于非固定半径,您只需要更新查询的半径和/或新用户的纬度,它将获得附近的用户。

对于 Geofire,您需要一个额外的单独节点来存储每个用户的地理位置对象

于 2017-08-27T10:36:36.453 回答