【发布时间】:2010-11-06 20:56:06
【问题描述】:
我已经设法得到两个函数来计算谷歌地图上两点之间的距离。一个是我从网络上的不同地方收集到的(偷来的),另一个是使用 Google Maps API 中的 GLatLng.distanceFrom 方法。
我使用两个函数的原因是因为我注意到我从 Google 获得的结果有些奇怪,例如,英国 Lands End 和 John O Groats 之间的距离返回如下
- 我的功能:985km
- 谷歌:986 公里
- 维基百科:970 公里
与 Wikipedia 结果的 15/16 公里差异是因为 Google 返回的位置结果距离实际的 John O Groats 大约 15 公里。所以这是正确的。
然后我测试了伦敦和米兰之间的距离并得到了
- 我的功能:1232km
- 谷歌:1234 公里
- Wolfram 阿尔法:958.5 公里
所以有人在 250 多公里之外。然后我尝试了伦敦到纽约
- 我的功能:8244km
- 谷歌:8254 公里
- Wolfram 阿尔法:5581 公里
一般认为,伦敦和纽约之间的距离约为 5560 公里。但现在我的功能和谷歌功能似乎都偏离了标准。
我正在使用的函数can be found here。我向作者道歉,没有链接到原始网站,但布局确实令人困惑。我正在使用 distHaversine 函数。
我必须承认,数学远远超出了我的舒适度,但我明白了要点,而且据我所知,Google 也使用 Haversine 方法。我也知道它可能会下降约 0.3%,但这并不能解释我所看到的差异。而且我对它有时正确,有时远离通常规定的地方之间的距离这一事实感到更加困惑。看起来距离越远,距离越远。
那么谁错了。 Google 和我正在使用的功能,还是其他人?
【问题讨论】:
-
当我在源站点 (movable-type.co.uk/scripts/latlong.html) 手动输入伦敦和纽约的纬度/经度坐标时,它确实给出了大约 5560 公里的正确距离,您能确认使用的坐标吗?
-
伦敦 lat1:-0.1262362,lon1:51.5001524 纽约 lat2:-73.986951,lon2:40.756054
-
天哪。看来我的纬度和经度混淆了。彼得,既然您指出了显而易见的解决方案,那就是使用可移动字体工具对其进行测试,请随时回答问题,我会接受答案。
标签: google-maps haversine