ios开发之定位和苹果地图

ios开发之定位和苹果地图

1. LBS开发简介

  需求:社交类(微信 QQ)     附件的人 

    购物应用  显示商家位置 (美团 大众点评)

    旅游类应用(去哪儿 携程)  显示当前位置周边酒店 餐馆 

  功能 :定位 (获取当前位置的地图)

     地图(显示某个区域的地图)

  实现: 苹果:定位功能和地图功能(国内使用高德的数据)

     高德地图

     百度地图

     搜搜地图 腾讯地图 谷歌地图...

 

 

2.地理定位

  1.库的配置

  2.定位功能

  3方向

3.地址编码和反编码

  1 地址编码 获取经纬度 确定地理位置

  2 地址反编码   知道地理位置 获取对应的经纬度

  3 火星地址和国家标准地址

    

    天朝测绘局以国家安全为理由,用法律的形式对所有在天朝发行的地图类产品加了强制性规范,要求所有地图类产品都必须使用国家测绘局的一种加偏移的算法,对地图的真实坐标进行加偏移处理,之后才可能通过审批准许上市。因此,天朝的所有官方及商用地图的坐标都是偏移的,这种偏移属于非线性的,偏移量在300至500米不等,偏移方向也不定。这种加过偏移的地图坐标就是所谓“火星坐标”。

 

    GPS接收机本身接收卫星的信号,计算出本机所在位置的经纬度,在没有做特别处理的时候,这个经纬度是正确的。但是如果GPS支持加载地图的话,这个GPS中的地图就得受上述第一条法规的约束了,所以正式在天朝销售的行货GPS设备中的地图必须也得加偏移,处理成火星坐标。

 

    GPS软件中设置一个使用同样算法的加偏移功能。GPS先从卫星上得到真实坐标,然后经过加偏移程序转换成火星坐标,由于是同一个算法,所以经过软件加偏移的坐标能跟同样加了偏移的地图吻合,就是“歪到一起”了。这样就可以用GPS正常导航了——但这台GPS设备输出的坐标仍然是火星坐标,放到Google Earth上面是没法正常吻合的。

 

    由于Google Earth属于卫星照片,它不是地图,所以不受天朝测绘法的约束,因此Google Earth的坐标是真实坐标。这样,问题又来了,当你使用天朝处理过的GPS导出火星坐标(或航迹),企图把它放到Google Earth上面看看自己都走了哪些路的时候,因为Google Earth照片的坐标是真实的,而你的GPS导出的坐标是火星坐标,二者就对不上号了,你也许会看到在google Earth上,你开着车从别人的楼顶上飞过去,或者打湖里面漂过去。

 

    

地球坐标 (WGS84)

  • 国际标准,GPS标准从 GPS 设备中取出的原始数据是就是这个

  • 国际地图提供商一般使用的也是这个

火星坐标 (GCJ-02)

  • 中国标准,行货 GPS 设备取出的最终数据是这个

  • 国家龟腚: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

百度坐标 (BD-09)

  • 百度标准,百度 SDK,地图,Geocoding 用的都是这个。

    

  • CLLocationManager 拿到的 CLLocation 转为火星坐标,MKMapView 不用处理

 

4.苹果原生态地图

  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。