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上,你开着车从别人的楼顶上飞过去,或者打湖里面漂过去。
- 国际标准,GPS标准从 GPS 设备中取出的原始数据是就是这个
- 国际地图提供商一般使用的也是这个
- 中国标准,行货 GPS 设备取出的最终数据是这个
- 国家龟腚:
国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。
百度坐标 (BD-09)
- 百度标准,百度 SDK,地图,Geocoding 用的都是这个。
- CLLocationManager 拿到的 CLLocation 转为火星坐标,MKMapView 不用处理
4.苹果原生态地图