现在的设备基本都能获取到经纬度,但是你使用的API不同,获取的经纬度是由偏差的,这就要从现在互联网上使用的坐标系说起了:
地球坐标 (WGS84)
国际标准,从专业GPS 设备中取出的数据的坐标系
国际地图提供商使用的坐标系
火星坐标 (GCJ-02)也叫国测局坐标系
中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系
国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。
百度坐标 (BD-09)
百度标准,百度 SDK,百度地图,Geocoding 使用,本来就乱了,百度又在火星坐标上来个二次加密。
开发过程需要注意的事
从设备获取经纬度(GPS)坐标
· 如果使用的是百度 SDK 那么可以获得百度坐标(BD09)或者火星坐标(GCJ02),默认是 BD09
· 如果使用的是 IOS 的原生定位库,那么获得的坐标是 WGS84
· 如果使用的是高德 SDK,那么获取的坐标是 GCJ02
通过百度地图获取到的经纬度,显示到腾讯地图上肯定有偏差,不过我们可以通过代码将其互相转换: