在混合app开发过程中使用百度地图api的出现坐标偏差的解决

识字粗堪供赋役,不须辛苦慕公卿。这篇文章主要讲述在混合app开发过程中使用百度地图api的出现坐标偏差的解决相关的知识,希望能为你提供帮助。
在项目中使用ngCordova的$cordovaGeolocation模块获取当前位置经纬度,当展示在百度地图中时发现有误差(我的测试误差为1.7公里左右),查资料发现百度地图经纬度与普通Gps获取的经纬度并不一样,解决办法参考百度开放地图论坛官方贴(http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread& tid=121352& extra=page%3D1)。 我用的是官方给的第二种方式,代码参考如下: ionic框架,引入< script src="http://img.readke.com/220422/0142352607-0.jpg ak=你的密钥"> < /script> 并且在app内注入ngCordova; controller内的代码如下:

var lat,long; var posOptions = {enableHighAccuracy: true}; //设置定位精度 $cordovaGeolocation .getCurrentPosition(posOptions) .then(function (position) { var lo=position.coords.longitude; //经度 var la=position.coords.latitude; //纬度 //开始转换坐标(GPS---百度坐标) $http({ method: ‘GET‘, url: ‘http://api.map.baidu.com/geoconv/v1/?coords=‘+lo+‘,‘+la+‘& from=1& to=5& ak=你的秘钥‘ }).then(function successCallback(response) {//转换完成 long=response.data.result[0].x; lat=response.data.result[0].y; // 调用百度地图api显示 var map = new BMap.Map("map"); var pPoint = new BMap.Point(long, lat); map.centerAndZoom(pPoint, 18); var geoc = new BMap.Geocoder(); var mk = new BMap.Marker(pPoint); map.addOverlay(mk); geoc.getLocation(new BMap.Point(long, lat), function(rs){ if(rs){ var location=rs.addressComponents; $scope.myLocation=location.province+location.city+location.district+location.street+location.streetNumber+rs.surroundingPois[0].title; console.log($scope.myLocation); } }); }, function errorCallback(response) { window.alert("转换坐标失败,请检查网络") }); }, function(err) { window.alert("获取地理位置失败") });

【在混合app开发过程中使用百度地图api的出现坐标偏差的解决】以上内容为原创,如有错误,望指出,谢谢

    推荐阅读