|
[多端开发]
bmap获取当前位置经纬度偏移问题
[复制链接]
在使用bmap获取位置时总有偏移,与自己的微信定位偏移几百米。先功能需求是不偏移,请问该如何解决。在getLocation时获取的经纬度就是偏移的,如何解决这个问题
- t, ret.lon)
- var longitude = des84Gis.lon//经度
- var latitude = des84Gis.lat//纬度
- setStorage('userLongitude', longitude);
- setStorage('userLatitude', latitude);
- ret.longitude = longitude;
- ret.latitude = latitude;
- api.sendEvent({name: 'mapChange'});
- callback(ret);
- } else {
- console.log(JSON.stringify(err));
- callback(false);
- }
- });
- }else{
- callback(false);
- alert("请到手机设置页开启定位(或位置)开关,否则将影响后续使用");
- }
- });
- }else{
- console.log(JSON.stringify(err));
- callback(false);
- }
- });
- }else{
- bMap.getLocationServices(function(ret, err) {
- if (ret.enable){
- bMap.getLocation({accuracy:'10m'},function(ret, err) {
- if (ret.status) {
- var des84Gis = GPS.baiduGisTo84(ret.lat, ret.lon)
- var longitude = des84Gis.lon//经度
- var latitude = des84Gis.lat//纬度
- setStorage('userLongitude', longitude);
- setStorage('userLatitude', latitude);
- ret.longitude = longitude;
- ret.latitude = latitude;
- api.sendEvent({name: 'mapChange'});
- callback(ret);
- } else {
- console.log(JSON.stringify(err));
- callback(false);
- }
- });
- } else {
- callback(false);
- alert("请到手机设置页开启定位(或位置)开关,否则将影响后续使用");
- }
- });
- }
- }else
- callback(false)
- })
- }
- baiduGisTo84 : function (lat, lon){
- var x = lon - 0.0065;
- var y = lat - 0.006;
- var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * this.x_pi);
- var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * this.x_pi);
- var gcjLon = z * Math.cos(theta);
- var gcjLat = z * Math.sin(theta);
- var dLat = this.transformLat(gcjLon - 105.0, gcjLat - 35.0);
- var dLon = this.transformLon(gcjLon - 105.0, gcjLat - 35.0);
- var radLat = gcjLat / 180.0 * this.PI;
- var magic = Math.sin(radLat);
- magic = 1 - 0.00669342162296594323 * m
复制代码
|
|