手机版

cordova vue webapp使用html5获取地理位置

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

1.在HTML5中使用Geolocation.getCurrentPosition()方法获取地理位置。

语法:

navigator . geolocation . getcurrentposition的参数(成功、错误、选项):

Success:是成功获取位置信息时的回调函数,位置对象作为唯一参数。Error:当回调函数无法获取位置信息时,它使用PositionError对象作为唯一的参数,这是可选的。Options:一个可选的PositionOptions对象包含以下三个参数。EnableHighAccuracy是一个布尔值,指示应用程序是否使用其最高精度来表示结果,默认值为false。超时是一个长正值,表示设备必须返回某个位置的时间(以毫秒为单位)。默认值为无穷大。MaximumAge是一个正长值,指示可用缓存位置可以返回多长时间(即最长时间,以毫秒为单位)。如果设置为0,则意味着设备不能使用缓存位置,必须获得真实的当前位置。如果设置为无穷大,设备必须返回缓存位置,而不管设置的最大年龄。默认值:0 2 .成功-成功获取位置信息时的回调函数

navigator . geolocation . getcurrentposition(函数(位置)){//获取成功时的处理//参数位置是地理位置对象}位置返回的信息如下:

通过精度获得的纬度或经度的精度(米);海拔当前地理位置的海拔(不能为空);高度获取的高度经度(以米为单位)航向设备移动方向(以度为单位)当前地理位置纬度经度速度设备前进速度(以米/秒为单位,无法获取时为空)获取地理位置信息时的时间戳时间3 .获取位置信息失败时的错误-回调函数。

navigator . geolocation . getcurrentposition(函数(位置){//获得成功时的处理;//参数位置为地理位置对象,函数(错误)){//采集失败时的处理;}错误中返回的信息如下

代码属性具有以下值:

-1获取地理位置信息失败,因为页面没有获取地理位置信息的权限。-2地理位置获取失败,因为至少一个内部位置源返回内部错误。-3获取地理位置超时。通过定义PositionOptions.timeout设置获取地理位置的超时时间。

Message返回一个开发人员可以理解的DOMString来描述错误的细节。

4.使用Geolocation.getCurrentPosition()时的注意事项:

在本地项目的Chrome浏览器中运行时,无法获取经纬度信息,因为Chrome不再支持非安全域的浏览器定位请求,定位只能在https下使用。IE、Eage、Firefox下可以获得的经纬度信息都是可以测量的。获取的GPS经纬度信息会与百度地图显示中的实际位置有所不同,因为百度外部界面的坐标系是BD09坐标系,不是GPS获取的真实经纬度。在使用百度地图JavaScript API服务之前,需要通过坐标转换接口将非百度坐标转换为百度坐标。(转换方法见下文)5。使用Geolocation.getCurrentPosition()获取经纬度信息,转换成百度坐标,进行反向地址解析:

以Vue项目为例。首先,百度API文件被引入根目录index.html,如下图所示:

获取位置,标记标记并执行反向地址解析。代码如下:

//1 查询当前位置信息getPosition(){ navigator。地理定位。getcurrentposition(此。getpositionsuccess,this.getPositionError,{'enableHighAccuracy': true,'超时' : 5000,'最大图像' : 5000 })},//1-1查询当前位置信息成功getPositionSuccess(位置){ this。纬度=字符串(位置坐标。纬度)这个。经度=字符串(位置。坐标。经度)让ggPoint=新BMap .点(这个。经度,这个。纬度)让点arr=[]点arr。推送(ggPoint)让转换器=新BMap .转换器()//坐标转换转换器。translate(pointArr,1,5,this.translateCallback) },//1-2查询当前位置信息失败getPositionError(错误){这个.$toast({ message: `获取地理位置失败请重试~ `,duration: 1000 }) },//坐标转换回调translateCallback(数据){ if (data.status===0) { //在地图上标注标记字母标记=新的BMap .标记(数据。点[0])映射。附加地图。panto(数据。点[0])//逆地址解析让myGeo=新的BMap .地理编码器()让那个=这是mygeo。getlocation(数据。点数[0],函数(结果){ if (result){ //获取逆地址解析结果那个。时钟站点=结果。地址} })} },坐标转换convertor.translate()方法说明:

语法:

convertor.translate(坐标,从,到,fn)参数:

坐标:需转换的源坐标来自:源坐标类型详见:[类型详情][4]到:目标坐标类型详见:[类型详情][5] fn:转换结果回调6.使用cordova vue开发网页应用中定位解决方法:

在科多巴中安装地理定位插件后,方可在生成的应用中获取到地理位置信息,运行如下命令即可:

科多巴插件添加科尔多瓦-插件-地理定位以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:cordova vue webapp使用html5获取地理位置是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。