Google maps api 3 地理距离:Wolfram Alpha不同意谷歌地图API

Google maps api 3 地理距离:Wolfram Alpha不同意谷歌地图API,google-maps-api-3,geospatial,geo,wolframalpha,Google Maps Api 3,Geospatial,Geo,Wolframalpha,在测试验证映射解决方案时,我遇到了GoogleMapsAPI和WolframAlpha之间的差异。两者都是我信任的来源,所以我只能相信我做错了什么,但就我的一生而言,我无法确定是什么 例如,乌鸦在伦敦(北纬51.5度,西经0.1167度)和布拉格(北纬50.8度,东经14.43度)之间飞行时的距离得出: :1036公里 :1627公里 这是一个非常显著的区别。对于到其他位置的距离,它的下降幅度相似。我没有混合行驶距离和球上直线距离,也没有混合单位(一切都以公里为单位)。对于这两个引擎,我正确地将

在测试验证映射解决方案时,我遇到了GoogleMapsAPI和WolframAlpha之间的差异。两者都是我信任的来源,所以我只能相信我做错了什么,但就我的一生而言,我无法确定是什么

例如,乌鸦在伦敦(北纬51.5度,西经0.1167度)和布拉格(北纬50.8度,东经14.43度)之间飞行时的距离得出:

:1036公里

:1627公里

这是一个非常显著的区别。对于到其他位置的距离,它的下降幅度相似。我没有混合行驶距离和球上直线距离,也没有混合单位(一切都以公里为单位)。对于这两个引擎,我正确地将本初子午线以西的经度视为负经度,将本初子午线以东的经度视为正经度。对于GoogleMaps测试(参见上面的链接),我使用的是
Google.Maps.geometry.spheremic.ComputedDistanceBetween
方法


更新:我添加了我自己的haversine公式()实现,它与Google Maps API一致,因此我非常确定问题出在Wolfram Alpha上。怎么会呢?输入看起来很明确,输出也很明确……

谷歌地图API给了我1034km的距离。你只是把坐标转换错了

您的代码:

var home=['London',新的google.maps.LatLng(-0.1167,51.5)]

伦敦的正确坐标:

var home=['London',新的google.maps.LatLng(51.5,-0.1167)]


这同样适用于示例中的其他点。希望这有帮助

也许我们没有考虑地球的曲率?1036公里是平坦表面上的距离?我希望WA正在考虑球体上的距离……它被认为是可用的最佳数据挖掘引擎之一,并声称其地理空间功能强大。现在我已经根据haversine的结果验证了Google地图解决方案,我已经联系了WA,因为如果WA是错误的……那么,他们会想知道的。如果我用错了,我想知道怎么做。嗯,我不认为这像WA犯计算笛卡尔距离的新手错误那么简单。如果取1°~=111km,伦敦和布拉格之间的笛卡尔距离为1591km,这比WA的答案更接近谷歌地图/哈弗森的答案。这的确是一个好问题。经过再三考虑,两者之间的差异很大程度上与曲率有关。试着点击西澳州的“方向”,它显示的除了乌鸦飞过的路径以外的任何东西,但仍然只有1271公里。我的技能远远不够,但我真的很想看到一个答案。是的,“方向”区域并不是我所担心的……它确实在笛卡尔投影上显示了一条直线。我过去曾使用WA验证地理空间应用程序,其直线距离与Google/Bing/haversine一致,因此这是一种新的行为……我认为WA已经拉屎了:(哦,天哪,我知道这是件愚蠢的事。疯狂愚蠢。谢谢,@MrUpisdown。让我伤心的是构造函数的名字(
LatLng
)告诉你把论点放在什么顺序上。我要把它归咎于我得了感冒……很明显,它扰乱了我的大脑。@EthanBrown,在KML/FusionTablesSlayers中,它在各种功能上也反对它。非常混乱。但谁会想到这一点:)