浏览器获取当前位置

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>获取当前地理位置</title>
</head>
<body>
	<p>window.navigator.geolocation对象存在3个方法:</p>
	<p>1、getCurrentPosition 获取当前地理位置</p>
	<p>2、watchPosition 监视位置信息</p>
	<p>3、clearWatch 停止获取位置信息</p>
		<p>1-1、getCurrentPosition(successCallback, onError, options)方法接受1个、2个或者3个参数。</p>
			<!-- 第1个参数为获取当前地理位置信息成功时所执行的回调函数,第2个参数为获取当前地理位置信息失败时所执行的回调函数,第3个参数为一些可选属性的列表。其中,第2、3个参数为可选参数 -->
			<p>第1个参数,在获取地理位置信息成功时执行的回调函数中,带有一个position参数,它是一个Geoposition对象。该对象有以下两个属性:</p>
				<p>timestamp属性,时间戳。</p>
				<p>coords属性,coords属性是一个Coordinates类型对象,包含下面这些属性:</p>

				<p>accuracy 获取到的经度或纬度的精度(以米为单位)。</p>
				<p>altitude 当前地理位置的海拔高度(不能获取时为null)。</p>
				<p>altitudeAccuracy 获取到的海拔高度的精度(以米为单位)。</p>
				<p>heading 设备的前进方向。用面朝正北方向的顺时针旋转角度来表示(不能获取时为null)。</p>
				<p>latitude 当前地理位置的经度。</p>
				<p>longitude 当前地理位置的纬度</p>
				<p>speed 当前的前进速度(以米/秒为单位,不能获取时为null)。
			<p>第2个参数,在获取地理位置信息失败时执行的回调函数中,带有一个error参数,它是一个PositionError对象。该对象有以下两个属性:</p>
				<p>code属性,可能值:</p>
					<p>当属性值为1时,表示用户拒绝了位置服务,"User denied Geolocation"。</p>
					<p>当属性值为2时,表示获取不到位置信息。</p>
					<p>当属性值为3时,表示获取信息超时错误,"Timeout expired"。</p>
				<p>message属性</p>
					<p>message属性值为一个字符串,包含了错误信息,这个错误信息在我们开发和调试时非常有用。</p>
			<p>第3个参数是一个可选属性的列表,说明如下:</p>
				<p>enableHighAccuracy属性,是否要求高精度的地理位置信息。</p>
				<p>timeout属性,超时限制(单位为毫秒)。如果在该时间内未获取到地理位置信息,则返回错误。</p>
				<p>maximumAge属性,对地理位置信息进行缓存的有效时间(单位为毫秒)。如果该值设为0,则每次都去重新获取地理位置信息</p>


</body>
<script type="text/javascript">
	const locationClass = class{
		constructor(){

		}
		testPro(){
			const a = this.promisePro();
			a.then(()=>{
				if(this.isOk()){
					return true
				}
			}).then(()=>{
				this.getLocation()
			})
		}
		promisePro(){
			return new Promise((resolve, reject) => {
				if(true){
					resolve()
				}
			});
		}
		isOk(){
		    return 'geolocation' in navigator;
		}
		getLocation(){
			navigator.geolocation.getCurrentPosition(
				//TODO 获取成功时的处理
				(position)=> {
				    let timestamp = position.timestamp;
				    let coords = position.coords;
				    console.log(timestamp);
				    console.log(coords);
				}, 
				 //TODO 获取失败时的处理
				(error)=> {
				    console.log(error);
				}, {
				    maximumAge: 0
				}
			)
			
		}
	}
	const location1 = new locationClass();
	location1.testPro()
</script>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值