启用坐标功能与指南针经纬度 #35
-
|
1、 2、定位模块启用后清除缓存仍显示CN 软件是Stash |
Beta Was this translation helpful? Give feedback.
Answered by
Junsang2000
Mar 3, 2025
Replies: 1 comment 2 replies
-
|
我也发现了第一个问题,我在群里找到了同样遇到的人,貌似这个问题存在很久了 我搞了好久才发现我的定位误差是因为这个引起的,我还以为我的手机坏了,定位偏移误差貌似还是固定的🤔 影响系统的准确性这个问题还是蛮大的,还是舍弃掉指南针的经纬度和海拔功能吧_(:з」∠)_ 没办法解决的话,要不在文档提醒一下吧,此功能可能会导致系统定位产生偏移误差 |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment


产生偏移的猜测
因国内使用的地理坐标被政策强制要求加入了偏移,采用的 GCJ-02标准,而苹果采用的国际标准 WGS-83,而系统获取的是坐标系,即经纬度,但此时获取的是 GCJ-02 标准的经纬度,投射到苹果地图上就是偏差的。
上面的过程可能不准确,也可能是反过来的
但可以肯定的是:
只有苹果自带的地图使用 WGS 坐标
高德地图使用 GCJ 坐标
显示出来的才是没有偏差的
参考资料
在 iOS 系统中,地图对 WGS-84(国际标准 GPS 坐标系)和 GCJ-02(中国火星坐标系)的运用机制主要涉及以下核心逻辑:
一、系统定位与坐标获取机制
默认定位输出为 WGS-84
iOS 原生的 CLLocationManager 通过 GPS 或蜂窝网络获取的经纬度坐标基于 WGS-84 标准。这种坐标在全球范围内通用,但直接在中国大陆地图服务中使用时,会因坐标系差异导致位置偏移数百米。
地图显示层的自动转换
当使用系统内置的 MKMapView 显示地图时,iOS 会自动将 WGS-84 坐标转换为 GCJ-02 坐标,以适配国内加密地图数据。例如,通过 MKMapView 的 didUpdateUserLocation 回调获取的坐标已修正为火星坐标,无需开发者手动处理。
二、开发者手动转换的场景与实现
非系统地图 SDK 的使用
若开发者集成第三方地图 SDK(如高德、百度),需自行实现坐标转换。因为这些 SDK 可能直接要求输入 GCJ-02 或 BD-09(百度二次加密坐标)。例如,调用高德地图 API 前,需通过开源算法将 WGS-84 转换为 …