我正在Firebase
上存储一些帖子以及发布位置的currentLatitude
和currentLongitude
。
现在,我想要的是我希望用户只能看到他/她身边1公里范围内的那些帖子。
我知道GeoFire
,但问题是我已将整个项目更新为最新的Firebase
SDK,并且当前的GeoFire
库与最新的{{1}不兼容SDK。
我也尝试过使用Geofences,但我不知道如何使用它。
如果您向我推荐一些替代方案或实现我想要的方式,我将非常感激。请!
答案 0 :(得分:1)
这是一个有趣的问题。首先,使用两个值(纬度和经度)会限制数学结束以获得半径圆区域。解决这个问题的一种方法是使用GeoHash https://en.wikipedia.org/wiki/Geohash 并且基于精度,可以设置缩放级别。 很少有可能有用的参考文献是https://gis.stackexchange.com/questions/18330/would-it-be-possible-to-use-geohash-for-proximity-searches
在firebase中: https://firebase.googleblog.com/2013/09/geofire-location-queries-for-fun-and.html
Google Maps API还具有丰富的几何功能,可以进行探索 https://developers.google.com/maps/documentation/javascript/reference#spherical
其他替代方案可以使用像PostGreSql / PostGis数据库这样的地理空间工具,它具有强大的功能,可以在设定的半径范围内进行检查https://gis.stackexchange.com/questions/77072/return-all-results-within-a-30km-radius-of-a-specific-lat-long-point