Skip to content
Discussion options

You must be logged in to vote

产生偏移的猜测
因国内使用的地理坐标被政策强制要求加入了偏移,采用的 GCJ-02标准,而苹果采用的国际标准 WGS-83,而系统获取的是坐标系,即经纬度,但此时获取的是 GCJ-02 标准的经纬度,投射到苹果地图上就是偏差的。

上面的过程可能不准确,也可能是反过来的

但可以肯定的是:
只有苹果自带的地图使用 WGS 坐标
高德地图使用 GCJ 坐标
显示出来的才是没有偏差的

参考资料

在 iOS 系统中,地图对 WGS-84(国际标准 GPS 坐标系)和 GCJ-02(中国火星坐标系)的运用机制主要涉及以下核心逻辑:

一、系统定位与坐标获取机制

  1. 默认定位输出为 WGS-84
    iOS 原生的 CLLocationManager 通过 GPS 或蜂窝网络获取的经纬度坐标基于 WGS-84 标准。这种坐标在全球范围内通用,但直接在中国大陆地图服务中使用时,会因坐标系差异导致位置偏移数百米。

  2. 地图显示层的自动转换
    当使用系统内置的 MKMapView 显示地图时,iOS 会自动将 WGS-84 坐标转换为 GCJ-02 坐标,以适配国内加密地图数据。例如,通过 MKMapView 的 didUpdateUserLocation 回调获取的坐标已修正为火星坐标,无需开发者手动处理。

二、开发者手动转换的场景与实现

  1. 非系统地图 SDK 的使用
    若开发者集成第三方地图 SDK(如高德、百度),需自行实现坐标转换。因为这些 SDK 可能直接要求输入 GCJ-02 或 BD-09(百度二次加密坐标)。例如,调用高德地图 API 前,需通过开源算法将 WGS-84 转换为 …

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@Junsang2000
Comment options

@Junsang2000
Comment options

Answer selected by OISDAQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants