开发过程中遇到地图定位不准确,存在偏差.首先确认你获取到的坐标所在坐标系跟地图数据是不是相匹配的.
常用的地图SDK:高德地图使用的是GCJ-02(也就是火星坐标系),百度使用的是BD-09百度坐标系,谷歌地图使用的是WGS-84世界标准坐标.由于手机的GPS获取到得坐标都是WGS-84世界标准坐标,如果跟地图所用坐标系不匹配,那么定位就可能存在误差值.
百度地图官方文档给出的转换方式:http://lbsyun.baidu.com/index.php?title=iossdk/guide/tool
高德地图官方文档给出的转换方式:http://lbs.amap.com/api/ios-sdk/guide/computing-equipment/amap-calculate-tool/
谷歌地图就不需要转换了,手机获取的坐标就是WGS-84世界标准坐标;
如果无法调用官网的接口,或则是用iOS自带的地图框架MapKit,需要把手机获取的坐标做转换,可以参考:https://github.com/JackZhouCn/JZLocationConverter,亲测效果还算可以,误差值在接受范围内.库的注释都是中文,也可以用cocoapods集成,很方便.