【HTML】HTML5的新特性Geolocation

2023-11-02

【HTML】HTML5的新特性Geolocation

引言

内容速递:看了本文您能了解到的知识!

在这里插入图片描述

位置是个人隐私,但技术得学习!

官方介绍:

HTML5 Geolocation API 用于获得用户的地理位置。

鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

1、获取物理定位

查看浏览器中是否有navigator.geolocation对象,有的话说明支持定位。

在这个对象下有一个getCurrentPosition(),可以获取当前的经度和纬度。

image-20220223151422309

1.1、getCurrentPosition()

语法

navigator.geolocation.getCurrentPosition(success, error, options)

参数

  • success

    成功得到位置信息时的回调函数,使用Position]对象作为唯一的参数。

  • error 可选

    获取位置信息失败时的回调函数,使用 PositionError]对象作为唯一的参数,这是一个可选项。

  • options 可选

    一个可选的PositionOptions对象。

1.2、成功回调

getCurrentPosition()接受第一个参数是一个方法,也就是获取地址成功的回调。

navigator.geolocation.getCurrentPosition((e) => {console.log(e)})

首先回询问你,是否授予权限。

image-20220223153606103

在浏览器的执行截图

image-20220223154150290

可以看到,已经成功获取了经纬度。

获取成功的数据

属性 描述
coords.latitude 十进制数的纬度
coords.longitude 十进制数的经度
coords.accuracy 位置精度
coords.altitude 海拔,海平面以上以米计
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,从正北开始以度计
coords.speed 速度,以米/每秒计
timestamp 响应的日期/时间

1.3、异常回调

当然异常的场景还是需要我们自己来模拟,接收第二个参数。

navigator.geolocation.getCurrentPosition((e) => {console.log(e),(e) => {console.log(e)}})

在弹出授权的窗口中,选择禁止!可以看到返回的的错误信息。

image-20220223155657095

错误代码

  • Permission denied - 用户不允许地理定位
  • Position unavailable - 无法获取当前位置
  • Timeout - 操作超时

2、一个获取物理定位的实例

结合成功回调和异常回调

var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0
};

// 成功回调
function success(pos) {
  var crd = pos.coords;
  console.log('位置信息:');
  console.log('Latitude : ' + crd.latitude);
  console.log('Longitude: ' + crd.longitude);
};

// 失败回调
function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
};

navigator.geolocation.getCurrentPosition(success, error, options);

3、监听地址变化

在前端打印navigator.geolocation对象的时候,发现还有其他两个方法:watchPosition()和clearWatch()。

3.1、watchPosition()

返回用户的当前位置,并继续返回用户移动时的更新位置(就像汽车上的 GPS)。

语法

id = navigator.geolocation.watchPosition(success, error, options)

参数

  • success

    成功时候的回调函数, 同时传入一个 Position对象当作参数。

  • error 可选

    失败时候的回调函数,可选, 会传入一个 PositionError对象当作参数。

  • options 可选

    一个可选的 PositionOptions 对象。

3.2、clearWatch()

停止 watchPosition() 方法

语法

navigator.geolocation.clearWatch(id);

参数

id

  • 希望移除的监听器所对应的 Geolocation.watchPosition()返回的 ID 数字。

3.3、实例

var id, target, option;

// 成功回调
function success(pos) {
  var crd = pos.coords;
  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log('到达目的地!');
    navigator.geolocation.clearWatch(id);
  }
};

// 错误处理
function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
};

// 目标经纬度
target = {
  latitude : 0,
  longitude: 0,
}

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0
};

id = navigator.geolocation.watchPosition(success, error, options);

4、总结

Geolocation的三个最基本的方法getCurrentPositionclearWatchwatchPosition需要记住哈!

重构前端知识体系,你要一起吗?

系列好文

HTML历史:【HTML】你还会来看HTML吗?带你重温亦或走进

HTML标签:【HTML】带你重忆HTML那些记忆模糊的标签

HTML视频:【HTML】讲讲HTML5视频播放的方式

HTML音频:【HTML】HTML5给网页音频带来的变化

HTML语义化:【HTML】讲讲对HTML5的语义化的理解

HTML定位:【HTML】HTML5的新特性Geolocation

HTML拖放:【HTML】HTML5的拖放你用了吗

HTML缓存:【HTML】不来看看HTML5的WebStorage吗

HTML应用缓存:【HTML】HTML5的应用程序缓存

HTML的Web Werkors:【HTML】HTML5的Web Werkors

博客说明与致谢

文章所涉及的部分资料来自互联网整理,其中包含自己个人的总结和看法,分享的目的在于共建社区和巩固自己。

引用的资料如有侵权,请联系本人删除!

感谢万能的网络,W3C,菜鸟教程等!

感谢勤劳的自己个人博客GitHub学习GitHub

公众号【归子莫】,小程序【子莫说】

如果你感觉对你有帮助的话,不妨给我点赞鼓励一下,好文记得收藏哟!关注我一起成长!

幸好我在,感谢你来!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【HTML】HTML5的新特性Geolocation 的相关文章

随机推荐

  • SSD算法详解 及其 keras实现 (下)

    在上一篇的博客讲述了SSD的原理 这一篇主要是讲解keras的实现 keras代码的github地址为 点击打开链接 model 的框架实现 ssd py 先给出了改变后的VGG16的实现 def SSD300 input shape nu
  • MybatisPlus多表连接查询

    一 序言 一 背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis 熟悉MyBatis的朋友都清楚 曾几何时MyBatis是多么的风光 使用XML文件解决了复杂的数据库访问的难题 时至今日 曾经的屠龙者终成恶龙 以XML文件
  • FPGA网络通信 ——RGMII传输

    一 RGMII特点 RGMII采用双沿传输 DDR接口 在CLK的上升沿和下降沿都各传输一次数据 同时 TX ER 和RX ER 信号编码进了TX CTL 和RX CTL 信号中 不再使用独立的信号线 这两个信号传输也是通过上升和下降沿来区
  • vue3 中绑定多个ref对象

    for循环中 如果给每一个元素绑定一个特定的ref值 ref xxx 那么就要定义N多个变量来分别接受它们 显然不现实 1 在setup中定义一个常量xxxrefs用来接受所有for循环设置ref的元素 ref中必须要是空数组 const
  • python3安装matplotlib的两种方法_如何安装matplotlib与Python3.2

    Matplotlib支持python 3 x版本1 2 发布于2013年1月 要安装它 看看installation instructions 一般来说 调用pip install matplotlib或使用您的首选机制 conda hom
  • c语言编程人狼羊菜过河,基于visual Studio2013解决C语言竞赛题之1079狼羊过河

    题目 解决代码及点评 79 猎人过河 猎人要把一只狼 一头羊和一些白菜从河的左岸带到右岸 但他的船太小 一次只能带一样 因为狼要吃羊 羊会吃白菜 所以狼和羊 羊和白菜不能在无人监视的情况下相处 问猎人怎样才能达到目的 请编程序实现猎人过河
  • SpringBoot注解使用redis做缓存总结

    前言 个人工作中对此相关内容的总结 部分资料来源于网上 一 Cacheable CachePut CacheEvict 注释介绍 Cacheable Cacheable 的作用 主要针对方法配置 能够根据方法的请求参数对其结果进行缓存 主要
  • nmtui 和 nmcli 命令 配置网络

    目录 一 nmtui命令 修改静态IP地址 二 nmcli命令 基于命令行配置网卡参数 三 绑定两块网卡 1 创建出一个bond网卡 2 向bond0设备添加从属网卡 3 配置bond0设备的网络信息 4 启动和测试 一 nmtui命令 修
  • 第001天:第一行Android代码

    1 1 了解全貌 Android王国简介 Android从面世以来到现在已经发布了二十几个版本了 在这几年的发展过程中 谷歌为 Android王国建立了一个完整的生态系统 手机厂商 开发者 用户之间相互依存 共同推进着 Android的蓬勃
  • 人体姿态识别(毕业设计+代码)

    模型效果 从下图可以清楚的看到 提出的模型可以对人眼以及嘴巴进行描述 最终的是对每个关节点进行了划分和表示 前言 从视频中进行人体姿势估计在各种应用中都扮演着关键角色 例如量化身体锻炼 手语识别和全身手势控制 例如 它可以成为瑜伽 舞蹈和健
  • windows内核API种类

    在初学windows驱动时 开始除了要学习驱动的加载 调试等准备工作后 就要学习内核的API了 作为初学者在刚刚看到那些很陌生的函数时可能会感到很迷茫 其实这些都是很正常的 就像我们在刚刚接触编程时那样 今天我在我第一篇正式的博文中总结一下
  • 【VUE】基于VUE的图片预览插件 vue-photo-preview

    使用方法 1 安装 npm install vue photo preview save 2 在 main js 中引入配置文件 import vuePicturePreview from vue picture preview Vue u
  • yolov5lite v1.4 踩坑记录

    yolov5lite v1 4 1 报错 AttributeError module numpy has no attribute int np int was a deprecated alias for the builtin int
  • Surface先进行lockCanvas,随后绘制视频引发的IlleageArgumentException

    表现形式 在SurfaceView或者SurfaceTextture中 先对拿到serface 对其lockCanvas获得画布 绘画解除锁定后 又播放视频 出现了崩溃 思路来源 https stackoverflow com questi
  • [性能优化]为了把首页加载速度从15秒降到2秒我都做了哪些事情?

    性能优化 为了把首页加载速度从15秒降到2秒我都做了哪些事情 前言 对于一个网站来说 首页打开的速度一定程度上决定了用户的访问量和留存率 很显然 5G时代下的人们是缺乏耐心的 如果一个网页卡十几秒还没开 估计会弃之 那么怎么才能提高这个速度
  • centos7安装pip并修改pip源,修改yum源

    修改yum源 wget O etc yum repos d CentOS Base repo http mirrors aliyun com repo Centos 7 repo sudo yum clean all sudo yum ma
  • GoogleNet(Going deeper with convolutions)网络简单介绍(笔记)

    GoogleNet在2014年由Google团队提出 斩获当年ImageNet竞赛中Classification Task 分类任务 第一名 网络中的亮点 1 引入了 Inception结构 融合不同尺度的特征信息 2 使用1x1的卷 积核
  • java float比较_java – 为什么我们不能使用’==’来比较两个float或double数字

    从apidoc Float compare Compares the two specified float values The sign of the integer value returned is the same as that
  • 引入助教来提高知识蒸馏效率

    引入教师助理来提高知识蒸馏效率 知识蒸馏简单介绍 摘要 实验数据证明 多层助教 参考论文 Improved Knowledge Distillation via Teacher Assistant 声明 文章的图片均来自以上论文 知识蒸馏简
  • 【HTML】HTML5的新特性Geolocation

    HTML HTML5的新特性Geolocation 引言 内容速递 看了本文您能了解到的知识 位置是个人隐私 但技术得学习 官方介绍 HTML5 Geolocation API 用于获得用户的地理位置 鉴于该特性可能侵犯用户的隐私 除非用户