Firebase Geofire查询仅在设置了较大的半径时才返回附近的项目

时间:2015-10-07 10:33:07

标签: javascript firebase geofire

出于某种原因,如果半径设置为1197或更高,我的Geofire查询仅返回项目。任何更少,没有任何东西将被退回。当返回数据并记录距离时,它们都小于1km,所以这对我没有任何意义。

对于这个的任何想法?

代码:

  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并存储它。

1 个答案:

答案 0 :(得分:0)

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

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