出于某种原因,如果半径设置为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并存储它。
答案 0 :(得分:0)
Geofire似乎需要Geohash来搜索数据库并且我只存储了纬度和经度,所以为了解决我的问题,我开始将lat / lng转换为geohashes并存储它。
要将坐标转换为地理位置,请参阅https://github.com/chrisveness/latlon-geohash,这非常有效。