開發過程中遇到地圖定位不准確,存在偏差.首先確認你獲取到的坐標所在坐標系跟地圖數據是不是相匹配的.
常用的地圖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集成,很方便.