龙空技术网

webapp调用html5+的获取定位遇到的一些问题及解决

夜不语的开心 120

前言:

今天同学们对“html5调用硬件”大概比较珍视,兄弟们都需要分析一些“html5调用硬件”的相关知识。那么小编在网上搜集了一些关于“html5调用硬件””的相关文章,希望我们能喜欢,同学们一起来了解一下吧!

最近项目需要用到获取手机自身的定位系统,一直反馈定位不好用。网络状况不好的时候定位不准确。今天难得有时间修改了一下功能。但是遇到了一些问题,我用了一些方法解决,希望看了这个文章的有更好办法的大神们,可以指点指点我。

1.定位不准

使用官方提供的getCurrentPosition,默认的坐标系是国际的坐标系,用在百度地图上会有误差。可以使用官方提供的配置解决。

如在getCurrentPosition方法的第三个参数加上

provider: "baidu",

coordsType: "bd09ll",//百度坐标系

'enableHighAccuracy': true,//开启精准定位

2.实时获取定位

使用官方提供的watchPosition方法 ,实时监控坐标的变化。

可用参数

provider: "baidu",

coordsType: "bd09ll",

'enableHighAccuracy': true,

'maximumAge': 2000,

等等 其他我暂时没有 用

3.实时获取定位的watchPosition方法出现的问题

用hbuilder 基座 调试 获取经纬度一切没问题,但是打正式app包后,发现watchPosition方法第一次监听没有问题,后面监听的经纬度全是(5e-324,5e-324)。无法正确获取定位。后来发现只要我打开监听,出去走几步就可以正常监听。正常效果和打开地图一样,地图上的标注点会和我走路的轨迹一样,一直变化。

4.解决方法。

监听发现经纬度全是(5e-324,5e-324)时候调用getCurrentPosition方法,

部分代码:

this.dwtimer = plus.geolocation.watchPosition(

position => {

//坐标获取

//console.log(JSON.stringify(position));

let p = position;

//console.log(p.coords.latitude);

let lat = p.coords.latitude;

let lng = p.coords.longitude;

this.sb.jwdlr = lng + "," + lat;

let province =

p.address.province == undefined ? "" : p.address.province;

let city = p.address.city == undefined ? "" : p.address.city;

let district =

p.address.district == undefined ? "" : p.address.district;

let street = p.address.street == undefined ? "" : p.address.street;

let streetNum =

p.address.streetNum == undefined ? "" : p.address.streetNum;

let poiName = p.address.poiName == undefined ? "" : p.address.poiName;

this.sb.device_place =

city + "" + district + "" + street + "" + streetNum + "" + poiName;

console.log(lat);

if(lat!=5e-324&&lng!=5e-324&&lat!="5e-324"&&lng!="5e-324"){

this.center = {

lng,

lat

};

this.choosedLocation = {

province,

city,

district,

addr: street + streetNum,

lng,

lat

};

}else{

this.hqdw();

}

},

e => {

console.log(e.message);

this.hqdw();

plus.nativeUI.toast("请打开GPS定位" + e.message);

},

{

provider: "baidu",

coordsType: "bd09ll",

'enableHighAccuracy': true,

'maximumAge': 2000,

}

);

标签: #html5调用硬件 #html5取位置 #androidhtml5定位 #h5定位不准确