问题现象:
通过android原生api获取到gps坐标,调用百度的地图api在手机上显示时,发现偏移距离超过1KM。
android获取定位坐标的代码,网上很多不再粘贴。
问题分析:
android原生api通过gps,wifi,蜂窝定位等获取到的为真实的经纬度坐标。而百度、腾讯、高德等地图上的坐标为修正坐标(处理过的坐标,非真实)
解决办法:
通过百度提供的转换代码,将真实经纬度坐标转换为修正坐标即可。
转换地址:http://api./ag/coord/convert?from=0&to=4&x=113.540124&y=23.517846
返回结果:
{"error":0,"x":"MTEzLjU1MTgwNTY4NDE0","y":"MjMuNTIxMjMxNDk2OTAy"}
转换代码如下:
$.ajax({type:"get",url:"http://api./ag/coord/convert?from=0&to=4&x="+lng+"&y="+lat,//采用http/https方式自行修改dataType:"jsonp",success:function(data){var dlng=atob(data.x);//base64解码var dlat=atob(data.y);//异步回调},complete:function(){},error:function(a,b,c){alert(a+b+c);}});