设置大半径时,Firebase Geofire 仅查询 returns 个附近的项目

Firebase Geofire query only returns nearby items when a huge radius is set

出于某种原因,如果半径设置为 1197 或以上,我的 Geofire 仅查询 returns 个项目。少了,什么都不会退回。当返回数据并记录距离时,它们都小于 1 公里,所以这对我来说没有任何意义。

对此有什么想法吗?

代码:

  this.firebaseRef = new Firebase("<my firebase - this is fine>");
  this.geoFire = new GeoFire(this.firebaseRef);

  this.geoQuery = this.geoFire.query({
    center: [50.72001, -1.8800],
    radius: 1197
  });

  this.geoQuery.on("key_entered", function(key, location, distance){
    console.log(key + ', ' + location + ', ' + distance);
  });

我应该提到我正在使用 React,这是在 componentWillMount 方法中。

谢谢!

更新: Geofire 似乎需要 Geohash 来搜索数据库,所以为了解决我的问题,我开始将 lat/lng 转换为 geohashes 并存储它。

Geofire 似乎需要 Geohash 来搜索数据库,而我的只存储纬度和经度,所以为了解决我的问题,我开始将 lat/lng 转换为 geohashes 并存储它。

要将坐标转换为 geohash,请参阅 https://github.com/chrisveness/latlon-geohash,这非常有效。