0

出于某种原因,我的 Geofire 查询仅在半径设置为 1197 或更高时才返回项目。少了,什么都不会退。当返回数据并记录距离时,它们都小于 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 并存储它。

4

1 回答 1

0

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

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

于 2015-10-08T14:43:57.120 回答