获取各个地理范围内的用户列表

时间:2017-08-27 10:31:23

标签: javascript firebase firebase-realtime-database geographic-distance

我的火力库数据库中给出了具有位置(长和纬度)和半径(以公里为单位)的用户列表,有效地定义了各个"动作圈",例如

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

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

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

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

1 个答案:

答案 0 :(得分:-1)

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

  

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

它可以使用非固定半径,只需更新您的查询半径和/或与新用户拉长,它将获得附近的用户。

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