8

我已经设法得到两个函数来计算谷歌地图上两点之间的距离。一个是我从网络上的不同地方收集到的(偷来的),另一个是使用 Google Maps API 中的 GLatLng.distanceFrom 方法。

我使用两个函数的原因是因为我注意到我从 Google 获得的结果有些奇怪,例如,英国 Lands End 和 John O Groats 之间的距离返回如下

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

与 Wikipedia 结果的 15/16km 差异是因为 Google 返回的位置结果距离实际的 John O Groats 大约 15 公里。所以这是正确的。

所以然后我测试了伦敦和米兰之间的距离并得到了

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

所以有人在250多公里之外。然后我尝试从伦敦到纽约

  • 我的功能:8244km
  • 谷歌:8254公里
  • 沃尔夫拉姆阿尔法:5581公里

一般来说,伦敦和纽约之间的距离被认为在 5560 公里左右。但现在我的功能和谷歌功能似乎都偏离了标准。

我正在使用的功能可以在这里找到。我向作者道歉,没有链接到原始网站,但布局确实令人困惑。我正在使用 distHaversine 函数。

我必须承认,数学远远超出了我的舒适度,但我明白了要点,据我所知,谷歌也使用了 Haversine 方法。我也知道它可能会下降约 0.3%,但这并不能解释我所看到的差异。而且我对它有时正确,有时远离通常规定的地方之间的距离这一事实感到更加困惑。看起来距离越远,距离越远。

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

4

3 回答 3

3

谷歌地图不计算最短直线距离——它通过道路和(空气、水、?)

于 2009-07-07T20:36:54.127 回答
3

As it turns out, I had the latitude and longitude parameters the wrong way around.

于 2012-02-16T17:33:19.407 回答
1

除非我误解了这一点:

差异是否源于谷歌地图计算您驾驶的距离而不是“乌鸦飞翔”的事实?

于 2009-07-02T20:20:51.173 回答