HTML 5 地理定位

@toc

1. HTML 5 地理定位

1.1 HTML 5 地理定位实现

geolocation 是浏览器对象 navigator 的一个属性,也是 HTML 5 地理定位的核心对象,通过它提供的方法 getCurrentPosition( ) 获取当前浏览器所在位置的对象,该对象包含经度(longitude)、纬度(latitude)和海拔高度(altitude)等信息;
使用平台分为移动端PC端
手机浏览器要先尝试使用内置 GPS 数据(定位精度以米为单位),再使用手机基站编号反向推导出对应的地理位置(定位精度以公里为单位);PC 浏览器通过电脑的 IP 反向查询(定位精度以公里为单位)
例子:HTML 5 地理定位的实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width,initial-scale=1.0" />
		<title>使用 Geolocation 获得当前地理位置(经度、纬度)</title>
	</head>
	<body>
		<script>
			if(!navigator.geolocation){
				alert("你的浏览器不支持 HTML 5 Geolocation");			//判断浏览器是否支持地理定位
			}else{
				var options={
					enableHighAccuracy:true,
					timeout:10000,
					maximumAge:60000
				};		//定义一个 JSON 对象
				navigator.geolocation.getCurrentPosition(success,Error.options);		//定位,第2和第3参数任选
			}
			function success(position){
				//定位成功时回调方法
				//坐标属性 coords 包含经度、纬度等信息
				var x=position.coords.longitude;
				var y=position.coords.latitude;
				alert("经度为:"+x+"\n纬度为:"+y);
			}
			function error(err){
				//定位失败时的回调方法
				var errorTypes={
					1:"用户拒绝定位服务",			//PERMISSION_DENIED
					2:"获取不到定位位置",			//POSITION_UNAVAILABLE
					3:"获取定位信息超时",			//TIMEOUT
					4:"未知错误"					//UNKNOW_ERROR
				};								//定义一个 JSON 对象
				alert(errorTypes[err.code]);	//使用数据方式访问 JSON 对象的数据
			}
		</script>
	</body>
</html>

20220103
注意:

  1. 并非所有浏览器都能定位成功;UC 浏览器和 window 10 自带的浏览器 Edge,均能定位成功;Google 和 360 浏览器需要等待较长时间才能出现定位失败的信息(获取定位信息超时);
  2. 获取指定位置的经度、纬度数据,可访问 点击这里,反之亦然;
    20220103
  3. 做浏览器测试是,要有网络;没有网络,会出现“获取不到定位信息”;
  4. HTML 5 自带的地理定位性能较差,对于第三方定位工具(如高德地图等),不在同一个层次;在项目开发中,很少用到原生 HTML 5 自带的地理定位功能;
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值