我的blog地址:
http://blog.csdn.net/h_qiao,欢迎访问
在开发中经常会遇到定位当前位置,而且不需要有地图之类的一系列功能,一般都会用CLLocationManger来定位。但是会发现定位出来的经纬度地理反编码之后和自己当前的位置是有偏差的。这是因为坐标体系不一样。
那就让我们来看看开发者能接触到哪些坐标体系:
地球坐标,火星坐标(iOS mapView,高德,国内google,搜搜,阿里云,腾讯),百度坐标,还有一些其他自己用的一套算法偏移的坐标。由此看来火星坐标是用的最多的坐标体系。
而CLLocationManager得到的是地球坐标,要经过转换成火星坐标。转换之后进行地理反编码得到的就是当前的位置。
但是使用MKMapView得到的就是火星坐标。可以直接反地理编码然后得到当前的所在的位置。
这个demo是某人(名字我不知道)用MKMapView来写的一份定位当前位置:https://github.com/smallqiang/MMLocationManager
这个demo是使用CLLocationManager来定位当前位置:https://github.com/HQiaoOne/CLLocationManagerDeviation
其中关于iOS8以后需要新添加的内容就不再赘述了,CLLocationManagerTransform的demo里面也有。