地图坐标偏移问题

image.png

通过以上两张图片我们发现,同一个经纬度在高德地图和百度地图上显示的位置是不一样的,百度地图的标点在高德地图标点的左下方大约1km处。

先介绍几个坐标标准:

  • WGS-84(大地坐标系)——国际经纬度坐标标准;
  • GCJ-02(火星坐标系)——国内要求使用的国测局制定的坐标标准,并且要求,任何地图产品至少要使用该坐标标准对原始坐标进行首次加密,高德地图、腾讯地图都是使用的这个坐标系;
  • BD-09——百度地图在GCJ-02的基础上进行了二次加密。

由于高德地图和百度地图使用的不是同一个加密方式,所以同一个坐标点显示的位置是不同的。

解决方法是调用百度地图的坐标转换接口进行转换,把非百度坐标转成百度坐标。单位请求可批量解析100个坐标。(官网链接:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition

接口:http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥 //GET请求

image.png

image.png

日常生活中使用导航的时候没有感觉到,是因为除了对手机地图加偏外,用户的定位也被加偏处理后再显示在地图上,相关坐标都被同一算法给加偏后,两者完全匹配, GPS 也就可以正常工作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容