在测试验证 map 解决方案时,我发现 Google Maps API 和 Wolfram Alpha 之间存在差异。两者都是我信任的来源,所以我只能相信我做错了什么,但就我的生活而言,我无法确定是什么。
例如,乌鸦在伦敦(北纬 51.5°,西经 0.1167°)和布拉格(北纬 50.8°,东经 14.43°)之间飞行的距离为:
Wolfram Alpha : 1036 公里
Google Maps API : 1627 公里
这是一个非常显着的差异。对于到其他位置的距离,它的偏移量相似。我没有混合行驶距离和球面上的直线距离,也没有混合单位(一切都以公里为单位)。对于这两个引擎,我正确地将本初子午线以西的经度视为负数,将其以东的经度视为正数。对于 Google map 测试(参见上面的链接),我使用的是 google.maps.geometry.spherical.computeDistanceBetween
方法。
更新:我添加了我自己的 haversine 公式 ( jsfiddle ) 实现,它与 Google Maps API 一致,所以我很确定问题出在 Wolfram Alpha 上。怎么办?输入看起来很明确,输出也是如此......
最佳答案
Google Maps API 给我的距离是 1034 公里。你只是把坐标转换错了。
您的代码:
var home = ['伦敦', new google.maps.LatLng(-0.1167, 51.5)];
伦敦的正确坐标:
var home = ['伦敦', new google.maps.LatLng(51.5, -0.1167)];
这同样适用于您示例中的其他点。希望这对您有所帮助!
关于google-maps-api-3 - 地理距离 : Wolfram Alpha not agreeing with Google Maps API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22601589/