h5使用navigator.geolocation获取定位经纬度。vue中引入百度地图api转换为具体地址

其实定位直接引入高德或百度的api,就可以调用其中的方法获取定位了,但是公司抠门,用里面的api会有每日访问上限,普通个人用户是5000次,并发为30

什么是navigator.geolocation

navigator.geolocation对象提供了可以公开访问地理位置的方法,其中navigator为浏览器内置对象。检测浏览器是否支持定位API,只需要检测geolocation是否存在于navigator中即可。对于移动Web开发者,大多数情况只需要获取用户的当前位置,此时可以使用getCurrentPosition()方法来获取当前位置的坐标值。getCurrentPosition()被调用时会发起一个异步请求,浏览器会调用系统底层的硬件(如GPS)来更新当前的位置信息,当信息获取到之后会在回调函数中传入position对象。
总结:就是gps定位

使用:
!!注意:
协议必须是https
(之前在http下试了半天,人裂开)
手机需要开启定位
如果第一次请求定位权限被拒绝,需要清除浏览器缓存才能再次获取请求权限

//Geolocation获取当前位置
function getNavigatorGeoLocation(){
   
	//判断浏览器是否支持geolocation
	if(navigator.geolocation){
   
		//参数
		let options={
   
           enableHighAccuracy:true, //是否启用高精确度模式
           maximumAge:1000, //浏览器重新获取位置信息的时间间隔
           timeout:15000,//请求超时时间 (15s)
      	}
      		 
		//分别为成功回调函数,失败回调函数,参数
		//该方法请求一次
		navigator.geolocation.getCurrentPosition(success,error,options)
		
		//请求多次,监听地理位置变化(根据需求看使用哪个)这里调用会返回一个数字 watchId
		//navigator.geolocation.watchPosition(success,error,options)
		
		//清除监听
		//navigator.geolocation.clearWatch(watchId)

	}else{
   
		//浏览器不支持geolocation
        console.log("当前系统不支持GPS API")
		
	}

}
//请求成功的回调
function success(position){
   
	console.log(position)
	console.log('经度='+position.coords.longitude)
	console.log('纬度='+position.coords.latitude)
	console.log('位置精度='+position.coords
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值