我正在使用 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"
Redis 表示卡塔尼亚距巴勒莫 174.8263 公里。
在使用 google api 获取这两个经纬度之间的距离时,我得到了不同的结果:
https://maps.googleapis.com/maps/api/distancematrix/json?units=metrics&origins=38.272273,13.349350&destinations=37.508123,15.089875
Google 表示卡塔尼亚距巴勒莫 233 公里。
我还使用了mongodb的$geonear,结果与redis类似:
Mongodb 表示卡塔尼亚距巴勒莫 174.971 公里。
我相信谷歌距离是正确的,所以任何人都可以帮我解决我在 Redis 中做错的事情。有没有其他方法可以获取正确的距离,因为我想使用 redis。
最佳答案
关于mongodb - Redis Geo - 返回两个地点/经纬度之间的不正确距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38197115/