返回顶部
首页 > 资讯 > 精选 >怎么在HTML5中使用Geolocation实现一个距离追踪器
  • 292
分享到

怎么在HTML5中使用Geolocation实现一个距离追踪器

2023-06-09 14:06:20 292人浏览 安东尼
摘要

今天就跟大家聊聊有关怎么在HTML5中使用Geolocation实现一个距离追踪器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。页面结构如下所示:<div id=&q

今天就跟大家聊聊有关怎么在HTML5中使用Geolocation实现一个距离追踪器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

页面结构如下所示:

<div id="container"> <section>  <article>   <header>    <h2>Your Location</h2>   </header>   <p class="info" id="status">您的浏览器不支持html5 Geolocation。</p>   <div class="geostatus">    <p id="latitude">纬度:  </p>    <p id="longitude">经度:  </p>    <p id="accuracy">准确度:  </p>    <p id="timestamp">时间戳:  </p>    <p id="currDist">目前旅行距离:  </p>    <p id="totalDist">旅行总距离:  </p>   </div>  </article> </section> <!-- 百度地图位置显示 --> <div id="allmap"></div>    </div>

判断浏览器是否支持HTML5 Geolocation

在body加载时调用loadDemo()方法,方法根据navigator.geolocation来判断浏览器是否支持HTML5 Geolocation;如果navigator.geolocation为true,那么我们就可以开始对用户位置进行获取更新

实时获取用户位置

HTML5可以通过getCurrentPosition() 方法来获得用户的位置。但这个只获取一次,所以我们选用了 watchPosition()这个方法,它能返回用户的当前位置,并继续返回用户移动时的更新位置(就像汽车上的GPS)。

navigator.geolocation.watchPosition(updateLocation, handleLocationError, {        timeout: 10000       });

在不断获取位置的同时,调用updateLocation这个方法,把位置情况显示在页面上,当然还要调用计算距离的方法来获取距离,以及不断更新百度地图上的位置。

var latitude = position.coords.latitude;var longitude = position.coords.longitude;var accuracy = position.coords.accuracy;var timestamp = position.timestamp;document.getElementById("latitude").innerHTML = "纬度:  " + latitude;document.getElementById("longitude").innerHTML = "经度:  " + longitude;document.getElementById("accuracy").innerHTML = "准确度:  " + accuracy;document.getElementById("timestamp").innerHTML = "时间戳:  " + timestamp;if(accuracy >= 30000) { updateStatus("Need more accurate values to calculate distance."); return;}if((lastLat != null) && (lastLong != null)) { var currentDistance = distance(latitude, longitude, lastLat, lastLong); document.getElementById("currDist").innerHTML = "目前旅行距离:  " + currentDistance.toFixed(2) + "km"; totalDistance += currentDistance; document.getElementById("totalDist").innerHTML = "旅行总距离:  " + currentDistance.toFixed(2) + "km"; updateStatus("Location successfully updated.");}lastLat = latitude;lastLong = longitude;

计算距离

把开始位置和当前位置的经度纬度作为参数放入函数,通过换算,来计算距离(单位为km)

Number.prototype.toRadians = function() {    return this * Math.PI / 180;   }function distance(latitude1, longitude1, latitude2, longitude2) {    var R = 6371;    var deltaLatitude = (latitude2 - latitude1).toRadians();    var deltaLongitude = (longitude2 - longitude1).toRadians();    latitude1 = latitude1.toRadians(), latitude2 = latitude2.toRadians();    var a = Math.sin(deltaLatitude / 2) * Math.sin(deltaLatitude / 2) + Math.cos(latitude1) * Math.cos(latitude2) * Math.sin(deltaLongitude / 2) * Math.sin(deltaLongitude / 2);    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));    var d = R * c;    return d;   }

百度地图API接入

要用百度地图api,你需要注册百度账号,申请成为百度开发者然后获取一个密钥,才能使用相关服务戳这 根据文档你可以知道如何使用这个API 代码如下:

var map = new BMap.Map("allmap"); // 创建Map实例 map.centerAndZoom(new BMap.Point(longitude, latitude), 14); //设置中心点坐标和地图级别 map.addControl(new BMap.MapTypeControl()); //添加地图类型控件 map.setCurrentCity("南昌"); //显示城市,此项必须设置 map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 // 以下为当前位置标注设置 var point = new BMap.Point(longitude, latitude); map.centerAndZoom(point, 14); var marker = new BMap.Marker(point); //创建标注 map.addOverlay(marker); //将标注添加到地图中 marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 // 百度地图API功能--------end

记得先引入一个script标签

<script type="text/javascript" src="Http://api.map.baidu.com/api?v=2.0&ak=你的密钥" ></script>

看完上述内容,你们对怎么在HTML5中使用Geolocation实现一个距离追踪器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 怎么在HTML5中使用Geolocation实现一个距离追踪器

本文链接: https://lsjlt.com/news/256375.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在HTML5中使用Geolocation实现一个距离追踪器
    今天就跟大家聊聊有关怎么在HTML5中使用Geolocation实现一个距离追踪器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。页面结构如下所示:<div id=&q...
    99+
    2023-06-09
  • 怎么在html5中使用Geolocation实现一个定位功能
    今天就跟大家聊聊有关怎么在html5中使用Geolocation实现一个定位功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.获取当前位置 我们将使用getCurrentPosi...
    99+
    2023-06-09
  • 怎么在HTML5中使用manifest实现离线缓存
    本篇文章给大家分享的是有关怎么在HTML5中使用manifest实现离线缓存,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。离线访问对基于网络的应用而言越来越重要。虽然所有浏览器...
    99+
    2023-06-09
  • 怎么在HTML5中使用WebSocket实现一个聊天室
    本篇文章给大家分享的是有关怎么在HTML5中使用WebSocket实现一个聊天室,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1)注册注册要处理几个事情,分别是注册完成后获取当...
    99+
    2023-06-09
  • 怎么在Html5中使用canvas实现一个粒子时钟
    这篇文章将为大家详细讲解有关怎么在Html5中使用canvas实现一个粒子时钟,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先要创建一个html文件并添加一个canvas画布,如下:<...
    99+
    2023-06-09
  • 怎么在Html5页面中使用JSON实现一个动画
    今天就跟大家聊聊有关怎么在Html5页面中使用JSON实现一个动画,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.demo.html里面有很多内联的东西,使用时堆积在页面内不好看仔...
    99+
    2023-06-09
  • Python3怎么使用tracemalloc实现追踪mmap内存变化
    技术背景在前面一篇博客中我们介绍了一些用python3处理表格数据的方法,其中重点包含了vaex这样一个大规模数据处理的方案。这个数据处理的方案是基于内存映射(memory map)的技术,通过创建内存映射文件来避免在内存中直接加载源数据而...
    99+
    2023-05-21
    Python mmap
  • 怎么在HTML5中使用Canvas实现一个放大镜效果
    这期内容当中小编将会给大家带来有关怎么在HTML5中使用Canvas实现一个放大镜效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。原理首先选择图片的一块区域,然后将这块区域放大,然后再绘制到原先的图片上...
    99+
    2023-06-09
  • 怎么在HTML5中使用tracking.js实现一个刷脸支付功能
    怎么在HTML5中使用tracking.js实现一个刷脸支付功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。摄像头1.1input获取摄像头html5中获取用户摄像头,有...
    99+
    2023-06-09
  • 怎么在HTML5中使用WebGL实现一个垃圾分类系统
    怎么在HTML5中使用WebGL实现一个垃圾分类系统?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。gv.setMovableFunc(() => {&...
    99+
    2023-06-09
  • 怎么在html5中使用canvas实现一个动态画饼状图
    怎么在html5中使用canvas实现一个动态画饼状图?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。先用canvas画实心圆//伪代码var canv...
    99+
    2023-06-09
  • 怎么在html5中实现一个时钟功能
    这期内容当中小编将会给大家带来有关怎么在html5中实现一个时钟功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE HTML><html><hea...
    99+
    2023-06-09
  • 怎么在HTML5页面中实现一个音乐播放器
    这篇文章给大家介绍怎么在HTML5页面中实现一个音乐播放器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。<audio id="music1">浏览器不支持audio标签<...
    99+
    2023-06-09
  • 怎么在HTML5中使用canvas实现一个瀑布流文字效果
    今天就跟大家聊聊有关怎么在HTML5中使用canvas实现一个瀑布流文字效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码如下:<!doctype html>...
    99+
    2023-06-09
  • 怎么在HTML5中使用WebGL实现一个俄罗斯方块游戏
    怎么在HTML5中使用WebGL实现一个俄罗斯方块游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码实现首先,先完成 2D 小游戏在查看官方文档的过程中,了解到 HT 的组...
    99+
    2023-06-09
  • 怎么在HTML5中实现一个3D旋转相册
    今天就跟大家聊聊有关怎么在HTML5中实现一个3D旋转相册,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。HTML5 代码如下:<!DOCTYPE html>&l...
    99+
    2023-06-09
  • 怎么在Html5中实现一个剪切板功能
    这期内容当中小编将会给大家带来有关怎么在Html5中实现一个剪切板功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.不带input输入框的原生js方法这种情况适用于复制非输入框中的文本到剪切板&nbs...
    99+
    2023-06-09
  • 怎么在html5中利用canvas实现一个弹幕功能
    本篇文章为大家展示了怎么在html5中利用canvas实现一个弹幕功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(function () {   ...
    99+
    2023-06-09
  • 使用python怎么实现经纬度求两点距离
    本篇文章给大家分享的是有关使用python怎么实现经纬度求两点距离,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。先给出半正失公式(haversine formula):先看第一...
    99+
    2023-06-15
  • 怎么在HTML5中使用Canvas实现一个破碎重组视频特效
    本篇文章为大家展示了怎么在HTML5中使用Canvas实现一个破碎重组视频特效,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML代码<video id="sourcev...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作