昨天大叔问我一个关于gps的问题,一开始我是懵逼的,因为之前我从来没有接触过这玩意儿。稍微查了一下,gps协议包含了$开头和<>结尾,但这并不是重点。大叔告诉我说他们采集了一些位置的经纬度坐标,但是放在百度地图里就有偏差,位置差了几公里。这个问题不小,毕竟差了几公里。于是在一番搜索后发现原来是百度在原本的经纬度上做了两次加密,这就导致了百度地图的坐标和其他地图的坐标稍微不同。
于是我去找这个算法,发现好像是保密的(也可能是时间短我没有找到)。最后在百度api的官网上找到了解决方案。
地址如下
http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition&qq-pf-to=pcqq.c2c
使用这个api,我首先做了几个实验
经纬度 118.7181389,32.0001889,这是南京江中东路的坐标,可以看到定位偏移的很明显
根据api格式我在浏览器里查询后得到了新的坐标
查询坐标,这回位置对了