我正在使用Redis Geo查找两个地方或经纬度之间的距离,但是当我将结果与Google距离矩阵api进行比较时,结果之间存在很大差异。
这是我的情况:
在redis CLI中追随
GEOADD Sicily 13.349350 38.272273 "Palermo" 15.089875 37.508123 "Catania"
GEORADIUS Sicily 13.349350 38.272273 200 km WITHDIST
得到了这个结果
1) 1) "Palermo"
2) "0.0001"
2) 1) "Catania"
2) "174.8263"
雷迪斯说,卡塔尼亚距离巴勒莫174.8263公里。
使用google api获取这两个经纬度之间的距离时,我得到了不同的结果:
https://maps.googleapis.com/maps/api/distancematrix/json?units=metrics&origins=38.272273,13.349350&destinations=37.508123,15.089875
谷歌说卡塔尼亚距离巴勒莫有233公里。
我还使用了mongodb的$ geonear,结果类似于redis:
Mongodb说卡塔尼亚距离巴勒莫有174.971公里。
我认为Google距离是正确的,所以任何人都可以请我帮我解决一下Redis中的错误。还有其他方法可以获取正确的距离,因为我想使用Redis。
最佳答案
这就是直接距离(即乌鸦飞翔)与陆地运输(道路)之间的距离之差。
对于future reference:
关于mongodb - Redis Geo-返回两个位置/经纬度之间的错误距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38197115/