运动轨迹绘制页面的设计与实现:仿照运动APP的轨迹记录功能将HTML5地理定位技术用于移动设备,实现地图显示与用户打车从起点到终点的运动轨迹绘制效果。

news/2024/7/19 15:37:00 标签: js, html, 定位

随着人们对健康意识的提高,各类运动软件也逐渐流行。由于手机方便携带,又自带GPS定位功能,因此APP成为用户的首选。例如咕咚、益动等。这些软件都具有类似的一个功能模块,就是在电子地图上跟踪记录用户跑步或骑行的运动轨迹。

实现效果点二级目录完整代码 代码每一行都是视频里面出现的可看视频学习,ak按那个链接注册就好

    • hello world
    • 可拖拽的标注
    • 开启鼠标滚轮缩放
    • 驾车线路规划 根据起终点经纬度查询驾车路线
    • 完整代码

在这里插入图片描述
访问应用(AK)获取秘钥http://lbsyun.baidu.com/apiconsole/key#/home
学习视频来源 b站https://www.bilibili.com/video/BV1Wa4y1e7AK?p=8

hello world

<!DOCTYPE html> 
<html>
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Hello, World</title> 
<style type="text/css"> 
html{height:100%} 
body{height:100%;margin:0px;padding:0px} 
#container{height:100%} 
</style> 
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密钥">
</script>
</head> 
  
<body> 
<div id="container"></div>
<script type="text/javascript">
var map = new BMapGL.Map("container");
// 创建地图实例 
var point = new BMapGL.Point(116.404, 39.915);
// 创建点坐标 
map.centerAndZoom(point, 15);
// 初始化地图,设置中心点坐标和地图级别 
</script> 
</body> 
</html>

可拖拽的标注

marker的enableDragging和disableDragging方法可用来开启和关闭标注的拖拽功能。默认情况下标注不支持拖拽,您需要调用marker.enableDragging()方法来开启拖拽功能。在标注开启拖拽功能后,您可以监听标注的dragend事件来捕获拖拽后标注的最新位置。
marker.enableDragging();
marker.addEventListener(“dragend”, function(e){
alert(“当前位置:” + e.point.lng + ", " + e.point.lat);
})

开启鼠标滚轮缩放

map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放

驾车线路规划 根据起终点经纬度查询驾车路线

var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}});
driving.search(p1, p2);

完整代码

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Hello, World</title>
    <style type="text/css">
        html{height:100%}
        body{height:100%;margin:0px;padding:0px}
        #container{height:100%}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oRy0TBwGKlEzSxd0kYB4wWZCIF9tBBHO">
        //v3.0版本的引用方式:src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"
    </script>
</head>

<body>
<div id="container"></div>
<script type="text/javascript">
    var map = new BMap.Map("container");
    // 创建地图实例
    var point = new BMap.Point(119.48024285781872, 26.244929795036903);
    // 创建点坐标
    var marker = new BMap.Marker(point);        // 创建标注
    map.addOverlay(marker);                     // 将标注添加到地图中
    marker.enableDragging();
    marker.addEventListener("dragend", function (e) {
        point = new BMap.Point(e.point.lng, e.point.lat);
    });
    map.centerAndZoom(point, 15);
    // 初始化地图,设置中心点坐标和地图级别
    map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
    // 给地图加个单击事件 生成红色标注
    map.addEventListener("click", function(e){
        map.clearOverlays();
        // 先清空再添加  这样就不会产生太多标注
        var point2 = new BMap.Point(e.point.lng, e.point.lat);
        var marker = new BMap.Marker(point2);
        map.addOverlay(marker);
        // alert("当前位置:" + e.point.lng + ", " + e.point.lat);
        var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}});
        driving.search(point2, point);
    })

</script>
</body>
</html>

http://www.niftyadmin.cn/n/883342.html

相关文章

qt 排序

有一组 double 需要排序&#xff0c;每个double有一个序号&#xff08;不连续&#xff09; 比如&#xff1a; key &#xff1a;5 &#xff0c;value&#xff1a;10.0 key &#xff1a;9 &#xff0c;value&#xff1a;11.0 key &#xff1a;15 &#xff0c;value&#xff1a;9.…

基于Web存储技术的网页主题切换设置

功能要求&#xff1a;使用Web存储中的localStorage技术可以把用户对用网页主题样式设置的内容永久存储下来。本例将实现一个网页设置页面&#xff0c;用户可以自定义页面的主题颜色与字体风格并将其存储在localStorage中&#xff0c;当重新加载该页面时会显示上一次保存的样式要…

网站建设、管理

网站建设、管理 1 Linux 快速建站 之前写过一篇win下建站的博客快速搭建自己个人博客网站 自从换了工作差不多有四五个月了&#xff0c;也没有管过自己的个人网站&#xff0c;一直就挂在哪里。突然心血来潮想整理下&#xff0c;登录发现&#xff0c;win竟然不会用了。再加上自…

QT 数据模型结构学习 :QFileSystemModel

qt自带几个比较方便的数据结构&#xff0c;今天学习 继承自 QAbstractItemModel 的 QFileSystemModel。 QFileSystemModel是一个用于访问本机文件系统的数据模型&#xff08;还有一个是QDirModel&#xff0c;两者主要区别是使用主线程还是独立线程&#xff0c;建议使用独立线程…

QT 数据模型结构学习 :QStringListModel

代码来自异步社区 qt5.9开发指南() https://www.epubit.com/bookDetails?idN25171 QStringListModel 继承自 QAbstractListModel。可以直接跟listview配合使用。   好处是数据和显示是分开的&#xff0c;两者更新一个会自动一起更新。 1. QStringListModel 添加数据 QList…

仿写微博 按照时间顺序发表内容

仿写微博&#xff0c;主要是学习按时间顺序发布insertBefore的简单尝试尝试一下创建在前面 并且删除的功能完整代码这篇文章不要抄袭 不然课程设计雷同容易导致零分 学习一下时间顺序发布就好了 按照原先的思路都是不断生成新的li 就是一直往下面走&#xff0c;不是时间顺序&a…

【OpenCV】便于快速测试的一个图片浏览器

最近总感觉&#xff0c;日常开发时候&#xff0c;使用c/opencv处理图片调试时候比较麻烦。跟Halcon或者matlab完全没法比&#xff0c;想实时调试效果太麻烦了。虽然windos下vs有个ImageWatch插件&#xff0c;勉强还能接受&#xff0c;但是ubuntu下&#xff0c;或者不用vs&#…

大学体育脚本答题

脚本答题基本上是满分操作 不要担心 可以自己提交 自己更改 操作性较强 自由度比较高 期末考试有很多公众号可以搜题 刷网课脚本使用须知第一步 安装用户脚本管理器第二步 安装脚本管理面板使用须知 注&#xff1a;打开链接的浏览器应该和你当时安装脚本管理器的浏览器一致 火…