2009-06-30 112 views
8

我已经设法得到两个函数来计算谷歌地图上两点之间的距离。我从谷歌地图API的GLatLng.distanceFrom方法中搜索(偷取)来自网络上各个地方的信息。Google地图是否计算了错误的距离?

我使用两个函数的原因是因为我发现了一些奇怪的关于我得到的形式谷歌的结果,例如,土地之间的距离结束并返回约翰·粹英国如下

  • 我的功能:985公里
  • 谷歌:986公里
  • 百科:970公里

从维基百科结果15 /16公里差异,是因为谷歌返回的位置RESU距离实际的John O Groats约15公里。所以这是正确的。

于是我测试了伦敦和米兰之间的距离,得到了

  • 我的功能:1232公里
  • 谷歌:1234公里
  • Wolfram Alpha的:958.5公里

所以有人更超过250公里。然后我试图伦敦到纽约

  • 我的功能:8244公里
  • 谷歌:8254公里
  • Wolfram Alpha的:5581公里

一般而言,伦敦和纽约之间的距离被认为是左右5560公里。但是现在我的功能和Google功能似乎都没有问题。

我使用的函数can be found here。我向作者抱歉,未链接到原始网站,但布局非常混乱。我正在使用distHaversine函数。

我必须承认,数学超出了我的舒适程度,但我明白了,据我了解,Google也使用Haversine方法。我也明白,它可能会下降约0.3%,但这并不能解释我所看到的差异。而且我更加困惑的是,它有时是正确的,有时也会偏离地点之间通常所说的距离。看起来距离越远,它越偏离。

那么谁是错的。谷歌和我正在使用的功能,还是其他人?

+3

当我在源网站(http://www.movable-type.co.uk/scripts/latlong.html)手动输入伦敦和纽约的纬度/经度坐标时,它确实给出了正确的距离5560km,你能确认使用的坐标吗? – Peter 2009-06-30 01:23:31

+0

London lat1:-0.1262362,lon1:51.5001524 纽约lat2:-73.986951,lon2:40.756054 – gargantuan 2009-06-30 02:10:48

回答

3

事实证明,我有经纬度参数错误的方式左右(空气,水,?)。

1

除非我误解这一点:

可能的差异从谷歌地图的计算,你开车,而不是“直线距离”的距离增加而发出?

3

谷歌地图不计算的最短直线距离 - 它会通过公路和