应用程序和谷歌地图中的距离之间的CLLocation差异
Posted
技术标签:
【中文标题】应用程序和谷歌地图中的距离之间的CLLocation差异【英文标题】:CLLocation discrepancy between distances in app & google maps 【发布时间】:2016-07-02 13:56:59 【问题描述】:我正在获取 2 个位置之间的距离:
-
来自 Google 地图:距离 = 1.5 公里(大约)(正确)
从应用程序使用
CLLocation
:距离 = 0.83 公里(大约)(不正确)
位置坐标为:
当前位置:19.0174941,72.8557548 目的地位置:19.0205907,72.8540556
下面是我用来计算距离的代码:
CLLocation *destination = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:[longitude doubleValue]];
CLLocationDistance distance = [destination distanceFromLocation:currentLocation]/1000.0;
我无法理解为什么这两种方法会有如此大的差异。谁能指导我如何从两种方式获得相同的距离。
【问题讨论】:
【参考方案1】:带有 Google SDK 的 Google 地图可以为您提供实际的道路距离,而 CLLocation 可以为您提供 2 个坐标之间的距离,因为它是一条直线。所以有这个区别。
请查看苹果文档here。
此方法通过追踪来测量两个位置之间的距离 它们之间的一条线,沿着地球的曲率。这 产生的圆弧是平滑曲线,不考虑 两个位置之间的特定高度变化。
【讨论】:
这意味着我们永远无法使用 CLLocation Manager 获得准确的距离? @iYoung 请查看 Apple 文档对此有何评论,我已经更新了答案。以上是关于应用程序和谷歌地图中的距离之间的CLLocation差异的主要内容,如果未能解决你的问题,请参考以下文章
与在线工具和谷歌地图相比,为啥我的 Python hasrsine 距离计算错误?
如何使用 javascript 和谷歌地图更改地图中的位置?
如何在android中的谷歌地图上绘制路线并计算多个标记之间的距离