android 获取定位坐标,在百度地图出现大偏移的处理办法

问题现象:

通过android原生api获取到gps坐标,调用百度的地图api在手机上显示时,发现偏移距离超过1KM。

android获取定位坐标的代码,网上很多不再粘贴。

问题分析:

android原生api通过gps,wifi,蜂窝定位等获取到的为真实的经纬度坐标。而百度、腾讯、高德等地图上的坐标为修正坐标(处理过的坐标,非真实)

解决办法:

通过百度提供的转换代码,将真实经纬度坐标转换为修正坐标即可。

转换地址:http://api.map.baidu.com/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.map.baidu.com/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);
                    }
                });

 

你可能感兴趣的:(android)