我已经设法得到两个函数来计算谷歌地图上两点之间的距离。一个是我从网络上的不同地方收集到的(偷来的),另一个是使用 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%,但这并不能解释我所看到的差异。而且我对它有时正确,有时远离通常规定的地方之间的距离这一事实感到更加困惑。看起来距离越远,距离越远。
那么谁错了。谷歌和我正在使用的功能,还是其他人?