Redis Geo - 返回两个位置之间的不正确距离/ lat-longs

时间:2016-07-05 07:01:45

标签: mongodb redis geolocation stackexchange.redis node-redis

我正在使用Redis Geo找到两个地方或纬度之间的距离,但是当我将结果与谷歌距离矩阵api进行比较时,结果之间存在很大差异。

这是我的情景:

继续使用redis CLI

  1. 执行此命令

    GEOADD Sicily 13.349350 38.272273 "Palermo" 15.089875 37.508123 "Catania"
    
  2. 执行此命令

    GEORADIUS Sicily 13.349350 38.272273 200 km WITHDIST
    
  3. 得到了这个结果

        1) 1) "Palermo"
        2) "0.0001"
        2) 1) "Catania"
        2) "174.8263"
    

    Redis说卡塔尼亚距离巴勒莫有174.8263公里。

    在使用google api获取这两个lat长度之间的距离时,我得到了不同的结果:

        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公里。

    我相信谷歌的距离是正确的,所以任何人都可以帮我解决我在Redis中做错的事情。有没有其他方法可以获得正确的距离,因为我想使用redis。

1 个答案:

答案 0 :(得分:2)

这是直接距离(即乌鸦飞行)与陆地运输(道路)距离之间的差异。

future reference

enter image description here