我正在使用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-返回两个位置/经纬度之间的错误距离-LMLPHP

    关于mongodb - Redis Geo-返回两个位置/经纬度之间的错误距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38197115/

    10-15 07:40