CLLocationManager 和 MKMapView 定位当前位置的偏差问题

什么原因?
能想到的原因:坐标系不同
  • CLLocationManager:在国内使用的火星坐标(GCJ-02)
  • MKMapView:不管在哪里用的都是国际标准的坐标系(WGS-84)
所以有偏差是必然的,当然这里要注意:CLLocationManager 在国内才是火星坐标。
怎么解决
  • 方案一:
    将坐标进行转换,这里需要注意,需要判断是不是在中国,是的话才进行坐标转换。

参考 IOS地图定位坐标偏差解决方案(实战通过)

  • 方案二:
    这也是我采用的方案,就是定位操作直接用 MKMapView,不用 CLLocationManager,这样不用考虑那么多情况,这样只会有一种标准,不会出现坐标不一样的情况。

你可能感兴趣的:(CLLocationManager 和 MKMapView 定位当前位置的偏差问题)