app&中距离之间的CLLocation差异谷歌地图

时间:2016-07-02 13:56:59

标签: ios objective-c cllocation

我在2个地点之间取得距离:

  1. 来自Google地图:距离= 1.5公里(约)(正确)
  2. 使用CLLocation从应用程序:距离= 0.83 KM(大约)(不正确)
  3. 位置坐标为:

    当前位置:19.0174941,72.8557548 目的地位置:19.0205907,7​​2.8540556

    以下是我用来计算距离的代码:

    CLLocation *destination = [[CLLocation alloc] initWithLatitude:[latitude doubleValue]  longitude:[longitude doubleValue]];
    CLLocationDistance distance = [destination distanceFromLocation:currentLocation]/1000.0;
    

    我无法理解为什么两种方法都存在这样的差异。任何人都可以指导我如何从两个方面获得相同的距离。

1 个答案:

答案 0 :(得分:0)

使用Google SDK的Google地图可以为您提供实际的道路距离,而CLLocation可以为您提供2个坐标之间的距离,并将其视为一条直线。这就是这种差异。

请查看apple docs here

  

此方法通过跟踪测量两个位置之间的距离   它们之间的一条线跟随地球的曲率。该   产生的弧线是一条平滑的曲线并没有考虑在内   两个地点之间的特定高度变化。