我设法让两个函数计算谷歌地图上两点之间的距离。我使用Google Maps API中的GLatLng.distanceFrom方法从网络上的各个位置收集(偷取)了一个。
我使用两个功能的原因是因为我注意到我从谷歌获得的结果有些奇怪,例如,Lands End和英国的John O Groats之间的距离返回如下
与维基百科的结果相差15 / 16km是因为Google返回的位置结果距离实际的John O Groats大约15公里。这是正确的。
然后我测试了伦敦和米兰之间的距离并得到了
所以有人超过250公里。然后我尝试了伦敦到纽约
一般来说,伦敦和纽约之间的距离大约为5560公里。但是现在我的功能和Google功能似乎都不合适了。
我正在使用的功能can be found here。我向作者抱歉没有链接到原始网站,但布局真的令人困惑。我正在使用distHaversine功能。
我必须承认,数学是超出我的舒适程度,但我得到了要点,据我所知,Google也使用了Haversine方法。我也明白它可能会下降约0.3%,但这并不能解释我所看到的差异。而且我更加困惑的是,它有时是正确的,有时会偏离地方之间的常规距离。距离越远,越远。
那么谁错了。谷歌和我正在使用的功能,还是其他所有人?
答案 0 :(得分:3)
谷歌地图不计算最短的直线距离 - 它通过道路和(空气,水,?)
答案 1 :(得分:3)
事实证明,我的纬度和经度参数是错误的。
答案 2 :(得分:1)
除非我误解了这一点:
这种差异是因为谷歌地图计算出你驾驶的距离而不是“像乌鸦一样”这个事实吗?