美文网首页
iOS地图定位偏差问题解决(不同坐标系转化)

iOS地图定位偏差问题解决(不同坐标系转化)

作者: CoderMrGuo | 来源:发表于2017-05-31 15:08 被阅读41次

国际共识:WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置;

中国:GCJ-02的坐标系统。在我国,出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标,称之为火星坐标;

百度:BD-09的坐标系统,百度坐标是在国测局制定的GCJ-02,对地理位置进行首次加密的基础上,进行了BD-09二次加密措施,更加保护了个人隐私。

下面直接上代码,直接创建一个坐标转化类,用的时候将定位到的CLLocationCoordinate2D,直接通过所定义的类转化一下,再用的时候,地图定位偏差较大的问题即可解决。分别介绍下下列方法

1.判断是否在中国

+ (BOOL)isLocationOutOfChina:(CLLocationCoordinate2D)location;

2. 将WGS-84转为GCJ-02(火星坐标):

+ (CLLocationCoordinate2D)transformFromWGSToGCJ:(CLLocationCoordinate2D)wgsLoc;

3.将GCJ-02(火星坐标)转为百度坐标:

+(CLLocationCoordinate2D)transformFromGCJToBaidu:(CLLocationCoordinate2D)p;

4.将百度坐标转为GCJ-02(火星坐标):

+(CLLocationCoordinate2D)transformFromBaiduToGCJ:(CLLocationCoordinate2D)p;

5.将GCJ-02(火星坐标)转为WGS-84:

+(CLLocationCoordinate2D)transformFromGCJToWGS:(CLLocationCoordinate2D)p;

用的时候,直接把国际坐标转换成火星坐标,就可以直接显示定位信息了

具体代码见demo  

相关文章

  • iOS地图定位偏差问题解决(不同坐标系转化)

    国际共识:WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置; 中国:GCJ-02的坐标系统。在我国...

  • iOS地图定位偏差问题解决(不同坐标系转化)

    国际共识:WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置; 中国:GCJ-02的坐标系统。在我国...

  • iOS地图定位偏差问题解决(不同坐标系转化)

    际共识:WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置; 中国:GCJ-02的坐标系统。在我国,...

  • 数据爬取

    (一)地理偏移 高德地图:GCJ-02 坐标系(火星坐标系)百度地图:BD-09坐标系(百度坐标系)不同地图定位偏...

  • bd09坐标转wgs84

    之前公司定位用的是百度定位,但是由于公司地图展示位天地图,由于偏移严重(毕竟坐标系不同)需要坐标系转换,之前看公司...

  • GPS轨迹可视化

    写在前面:所有数据记得选择对应的坐标系,例如百度地图和原始GPS坐标系就不同,需要转化再将它投射到地图上,否则就会...

  • iOS系统获取的坐标和高德地图 百度地图坐标

    GPS以及iOS系统定位获得的坐标是地理坐标系 WGS1984Web地图一般用的坐标细是投影坐标系 ...

  • 不同坐标系经纬度的转化

    几大常见的三方地图使用了不同的坐标系,导致同一个地址的经纬度的地图上显示有偏差,提供下面的工具类帮助不同地图中的经...

  • iOS 坐标系、地图、定位

    常见的坐标系有三种: 1、地球坐标(WGS84,国际公认坐标), 2、火星坐标(GCJ02,国家标准,适用于高德百...

  • 地图坐标相关

    GPS以及iOS系统定位获得的坐标是地理坐标系WGS1984 Web地图一般用的坐标细是投影坐标系WGS 1984...

网友评论

      本文标题:iOS地图定位偏差问题解决(不同坐标系转化)

      本文链接:https://www.haomeiwen.com/subject/hvcjfxtx.html