HTML5 定位

news2024/12/28 6:40:17

文章目录

  • HTML5 定位
    • geolocation
      • 简介
      • getCurrentPosition()
      • watchPosition() 和 clearWatch()
    • 百度地图

HTML5 定位

geolocation

简介

在HTML5中,可以使用geolocation对象来获取用户的地理位置信息。

语法

window.navigator.geolocation
//简写为
navigator.geolocation

geolocation对象的方法

方法说明
getCurrentPosition()获取当前位置
watchPosition()监听位置
clearWatch()取消监听

getCurrentPosition()

语法

navigator.geolocation.getCurrentPosition(function(position){
  ……
}, error, option);

说明

参数1:成功获取当前地理位置。

参数2:获取失败执行。

参数3:配置信息。

postion对象的属性

属性说明
coords.longitude经度
coords.latitude维度

使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script>
			window.onload = function() {
				var btn = document.getElementById("btn");
				var content = document.getElementById("content");
				btn.onclick = function() {
					navigator.geolocation.getCurrentPosition(function(position) {
						var html = `经度:${position.coords.longitude} <br>
									维度:${position.coords.latitude} <br>`;
						content.innerHTML = html;
					}, function() {
						content.innerHTML = "获取失败";
					});
				}

			}
		</script>
	</head>
	<body>
		<button id="btn">获取位置信息</button>
		<p id="content"></p>
	</body>
</html>

在这里插入图片描述

watchPosition() 和 clearWatch()

可以使用watchPosition()方法来持续不断地获取当前位置的坐标。

语法

navigator.geolocation.watchPosition(function(position){
……
}, error, option);

使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport"
			content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<title></title>
		<script>
			window.onload = function() {
				var startBtn = document.getElementById("startBtn");
				var clearBtn = document.getElementById("clearBtn");
				var content = document.getElementById("content");
				var watchId;
				startBtn.onclick = function() {
					watchId = navigator.geolocation.watchPosition(function(position) {
						var html = `经度:${position.coords.longitude} <br>
								维度:${position.coords.latitude}`;
						content.innerHTML = html;
					}, function(positionError) {
						content.innerHTML = "获取失败: " + positionError.message;
					});
				}
				clearBtn.onclick = function() {
					navigator.geolocation.clearWatch(watchId);
				}
			}
		</script>
	</head>
	<body>
		<button id="startBtn">开始监听</button>
		<button id="clearBtn">停止监听</button>
		<p id="content"></p>
	</body>
</html>

百度地图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
		<title></title>
		<style type="text/css">
			html {
				height: 100%
			}

			body {
				height: 100%;
				margin: 0px;
				padding: 0px
			}

			#container {
				height: 100%
			}
		</style>
		<script src="http://api.map.baidu.com/api?v=2.0&ak=8bAHsDS8gDguHeavuGuEGng-mChkSCQ4Y"></script>
		<script>
			window.onload = function() {
				var content = document.getElementById("content");
				// 百度地图API功能
				var map = new BMap.Map("container");
				var point = new BMap.Point(116.331398, 39.897445);
				map.centerAndZoom(point, 12);
				var geolocation = new BMap.Geolocation();
				geolocation.getCurrentPosition(function(r) {
					if (this.getStatus() == BMAP_STATUS_SUCCESS) {
						var mk = new BMap.Marker(r.point);
						map.addOverlay(mk);
						map.panTo(r.point);
						content.innerText = '您的位置:' + r.point.lng + ',' + r.point.lat;
					} else {
						content.innerText = 'failed' + this.getStatus();
					}
				}, {
					enableHighAccuracy: true
				})
				//关于状态码
				//BMAP_STATUS_SUCCESS  检索成功。对应数值“0”。
				//BMAP_STATUS_CITY_LIST  城市列表。对应数值“1”。
				//BMAP_STATUS_UNKNOWN_LOCATION  位置结果未知。对应数值“2”。
				//BMAP_STATUS_UNKNOWN_ROUTE  导航结果未知。对应数值“3”。
				//BMAP_STATUS_INVALID_KEY  非法密钥。对应数值“4”。
				//BMAP_STATUS_INVALID_REQUEST  非法请求。对应数值“5”。
				//BMAP_STATUS_PERMISSION_DENIED  没有权限。对应数值“6”。(自 1.1 新增)
				//BMAP_STATUS_SERVICE_UNAVAILABLE  服务不可用。对应数值“7”。(自 1.1 新增)
				//BMAP_STATUS_TIMEOUT  超时。对应数值“8”。(自 1.1 新增)
			}
		</script>
	</head>
	<body>
		<p id="content"></p>
		<div id="container"></div>
	</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-app HBuilderX项目转为cli项目及踩坑记录

uni-app有两种创建创建项目的方式&#xff0c;通过HBuilderX可视化界面进行创建和通过vue-cli命令行&#xff0c;两者的区别可以参考uni-app官网-可视化方式的区别 其中cli项目是可以直接运行在hx中的&#xff0c;相比hx项目&#xff0c;cli的好处还有可以自定义环境变量和自定…

借助“云上”SPSS降低未来数据分析的不确定性

生活工作中我们常常会遇到这样或那样的困难&#xff0c;比如不得不临时居家办工&#xff0c;却发现家中电脑没有安装工作中的必备软件&#xff0c;比如毕业论文写到一半&#xff0c;同学告诉你&#xff0c;新版的软件升级加强了某个模型&#xff0c;能让你更好的完成论文。软件…

浅析从DWARF到BTF @龙蜥社区eBPF SIG

一、背景 一个程序会经历编码、编译、运行的过程&#xff0c;但所有的开发几乎都不可能是一帆风顺的&#xff0c;总会有些意想不到的错误&#xff0c;这时便需要调试。那么调试器使用的调试信息是从哪里来的呢&#xff1f;答案就是从编译后的文件中来的(依赖编译的时候使用特定…

Kubernetes使用Ingress Nginx流量代理

理论了解 1、ingress简介 kubernetes官方文档 Ingress 是 kubernetes API 中的标准资源类型之一&#xff0c;ingress 实现的功能是在应用层对客户端请求的 host 名称或请求的 URL 路径把请求转发到指定的 service 资源的规则&#xff0c;即用于将 kubernetes 集群外部的请求…

数字孪生水电站:发电流程三维可视化优化

从大禹治水到三峡大坝的建造&#xff0c;人类为控制和调配自然界的地表水和地下水&#xff0c;修建了许多的水利工程。对水资源进行了广泛的开发利用&#xff0c;诸如农业灌溉、工业和生活用水、水力发电、航运、港口运输、淡水养殖、旅游等。 将图扑软件与 GIS、粒子仿真、虚拟…

动作捕捉系统用于微创手术

微创手术是医生通过病人体表的微小切口&#xff0c;将细长的手术工具探入病人体内进行手术操作。与传统的开口手术相比&#xff0c;这种方式可减少手术对病人造成的创伤&#xff0c;缩短恢复时间。但是&#xff0c;微创手术也给医生的操作带来了一系列困难&#xff1a;比如受小…

Autoform R10中文版安装说明教程

1、安装R8的服务RLM_v12.0BL2 2、拷贝文件到相关目录&#xff08;1、许可证&#xff0c;C:\Program Files安装许可的位置。。。直接停止服务后替换R10 BIN文件 然后改环境变量&#xff08;这里可以直接改&#xff0c;也可以删掉然后重新输入&#xff0c;建议删掉后输入&#x…

上海亚商投顾:创业板缩量跌近1% 血氧仪概念逆市大涨

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪沪指早间低开高走&#xff0c;盘中一度拉升翻红&#xff0c;午后又再度下挫&#xff0c;深成指、创业板指均跌近1%。…

5G网络的关键技术及特点,面临的挑战!

01 5G关键技术 超密集组网&#xff1a;5G需要满足热点高容量场景&#xff08;高流量密度、高速率&#xff09; 超密集组网&#xff1a;大量增加小基站&#xff0c;以空间换性能 基站一般包括&#xff1a;宏基站和小基站 宏基站:即“铁塔站”&#xff0c;一般覆盖范围数千米…

Linux课程笔记

Linux基础命令 Linux的目录结构 /&#xff0c;根目录是最顶级的目录了Linux只有一个顶级目录&#xff1a;/路径描述的层次关系同样适用/来表示/home/itheima/a.txt&#xff0c;表示根目录下的home文件夹内有itheima文件夹&#xff0c;内有a.txt ls命令 功能&#xff1a;列出…

【北邮】计算机组成原理实验:实验一 运算器组成实验

实验一 运算器组成实验 实验目的 ⑴熟悉逻辑测试笔的使用方法。 ⑵熟悉 TEC-8 模型计算机的节拍脉冲 T1、T2、T3&#xff1b; ⑶熟悉双端口通用寄存器组的读写操作&#xff1b; ⑷熟悉运算器的数据传送通路&#xff1b; ⑸验证 74LS181 的加、减、与、或功能&#xff1…

Python数据容器(五)

python学习之旅&#xff08;五&#xff09; &#x1f44d;基础语法部分笔记(一) &#x1f44d;条件判断部分笔记(二) &#x1f44d;循环语句部分笔记(三) &#x1f44d;函数使用部分笔记(四) &#x1f44d;数据容器部分笔记(五) 一.数据容器 一种可以容纳多份数据的数据类型&am…

kail - 扫描与爆破

数据来源 扫描技术 背景 在渗透测试过程中&#xff0c;为了节省人力和时间&#xff0c;通常采用手工和工具相结合的方式。使用工具&#xff0c;就是将一些机械性的操作自动化实现&#xff0c;用来提高渗透测试的效率。例如&#xff0c;寻找内网网段[10.10.10,20/24]所有在线主…

MySQL窗口函数 和 阿里云日志15日留存率仪表盘统计脚本实现

窗口函数的官方描述&#xff1a;窗口函数对一组查询行执行类似聚合的操作。但是&#xff0c;虽然聚合操作将查询行分组为单个结果行&#xff0c;但窗口函数会为每个查询行生成一个结果&#xff0c;发生函数评估的行称为当前行&#xff0c;与发生函数评估的当前行相关的查询行构…

Kubernetes证书热更新期限至100年【HA高可用集群】

一、问题与环境 1.为什么更新证书&#xff1f;局域网如何保障服务稳定性&#xff1f;   众所周知k8s&#xff08;Kubernetes&#xff09;有一个默认证书期限为一年不成文的规定&#xff0c;官方的解释是“最佳的做法是经常升级集群以确保安全。&#xff08;升级后集群证书自…

MySQL表的增删查改

目录 1、表的插入 <1> 全列插入 <2> 指定列插入 <3> 插入否则更新 <4> 替换 2、表的查找 <1>全列查询 <2>指定列查询 <3> where条件 <4> 筛选分页结果 3、表的修改 4、表的数据删除 5、查看表结构 6、插入查询结…

SpringCloud微服务项目实战 - 2.App登录及网关

如果你追求一个局部的更好甚至完美,你有可能花费巨大的资源和时间&#xff1b; 从总体上看&#xff0c;这往往意味着总体的浪费和失败&#xff0c;这是传说中的“打赢了战役打输了战争”。 系列文章目录 项目搭建App登录及网关 文章目录系列文章目录一、App登录1. 需求分析2. …

2020-2021 ICPC, NERC, Southern and Volga Russian Regional Contest K. The Robot

翻译&#xff1a; 有一个机器人在一个没有尽头的方格场上。最初&#xff0c;机器人位于坐标为(0,0)的单元中。他将执行由一串大写拉丁字母“L”、“R”、“D”、“U”所描述的命令。当一个命令被执行时&#xff0c;机器人只是朝着相应的方向移动: “L”:向左一个单元格(当前单…

【聆思CSK6 视觉AI开发套件试用】AI控制直流电机转速接口打通

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;oxlm 背景 在访问极术社区时&#xff0c;偶然发现聆思科技的CSK6开发板的评估活动&#xff0c;看CSK6的硬件配置和技术规格&#xff0c;300M…

JavaScript奇淫技巧:变速齿轮

JavaScript奇淫技巧&#xff1a;变速齿轮 在PC时代&#xff0c;曾有个名为“变速齿轮”的神奇软件&#xff0c;可以加快或减慢系统时间。 当时常用来修改游戏速度&#xff0c;可实现外挂一般的效果&#xff0c;很不可思议。 本文&#xff0c;将用JavaScript复刻这一功能&…