0
点赞
收藏
分享

微信扫一扫

HTML 5 地理定位

爱薇Ivy趣闻 2022-02-19 阅读 76

@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+"
纬度为:"+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 自带的地理定位功能;
举报

相关推荐

0 条评论