基于Leaflet的轨迹模拟回放

简介: 在gis场景中,轨迹回放是一个很常见的场景。比如在导航软件中,在行程结束后根据运动轨迹生成运动图,在keep软件中,会自动记录用户的锻炼轨迹,在结束后可以看到自己的运动轨迹等等。这些需求都是设备在运行中自动记录相应的点,在结合gis模拟即可。

在gis场景中,轨迹回放是一个很常见的场景。比如在导航软件中,在行程结束后根据运动轨迹生成运动图,在keep软件中,会自动记录用户的锻炼轨迹,在结束后可以看到自己的运动轨迹等等。这些需求都是设备在运行中自动记录相应的点,在结合gis模拟即可。本文将采用Leaflet进行模拟轨迹回放。

环境:

1、leaflet.js

2、MovingMarker.js 插件

一、创建地图

// initialize the map on the "map" div with a given center and zoomvarmap=newL.Map('map', {
zoom: 6,
minZoom: 3,
});
// create a new tile layervartileUrl='http://localhost:8086/data/basemap_water/{z}/{x}/{y}.png',
layer=newL.TileLayer(tileUrl,
{
attribution: 'Maps © <a href=\"www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors',
maxZoom: 18});
// add the layer to the mapmap.addLayer(layer);

二、设置行为轨迹

varparisKievLL= [[28.8567, 112.3508], [30.45, 130.523333]];
varlondonParisRomeBerlinBucarest= [[31.507222, 110.1275], [28.8567, 112.3508],
[31.9, 112.5], [31.516667, 113.383333], [31.4166,126.1]];
varlondonBrusselFrankfurtAmsterdamLondon= [[21.507222, 110.1275], [30.85, 114.35],
[30.116667, 118.683333], [22.366667, 114.9], [31.507222, 110.1275]];
varbarcelonePerpignanPauBordeauxMarseilleMonaco= [
    [21.385064, 112.173403],
    [23.698611, 114.895556],
    [24.3017, 114.3686],
    [34.837912, 115.579541],
    [33.296346, 116.369889],
    [35.738418, 116.424616]
];
map.fitBounds(londonParisRomeBerlinBucarest);

三、设置运动的marker

varmarker1=L.Marker.movingMarker(parisKievLL, [10000]).addTo(map);
L.polyline(parisKievLL).addTo(map);
marker1.once('click', function () {
marker1.start();
marker1.closePopup();
marker1.unbindPopup();
marker1.on('click', function() {
if (marker1.isRunning()) {
marker1.pause();
        } else {
marker1.start();
        }
    });
setTimeout(function() {
marker1.bindPopup('<b>点我暂停 !</b>').openPopup();
    }, 2000);
});
marker1.bindPopup('<b>点我开始!</b>', {closeOnClick: false});
marker1.openPopup();

四、效果如下所示:

image.png
经过以上几步即可完成基于leaflet的位置回放展示,希望对你有帮助。

目录
相关文章
|
定位技术 API
基于Leaflet.draw的自定义绘制实战
本文介绍了如何基于leaflet.draw进行自定义绘制,同时获取对象的bbox和geojson信息。
1475 0
基于Leaflet.draw的自定义绘制实战
|
6月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
51927 73
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename &#39;s/2023/2024/&#39; *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
1807 0
Vue使用地图以及实现轨迹回放 附完整代码
|
NoSQL 前端开发 Redis
Windows 下安装和配置 Redis (图文教程)
Windows 下安装和配置 Redis (图文教程)
|
JSON 算法 API
1688拍立淘图片搜索接口全攻略
1688拍立淘图片搜索接口由阿里巴巴提供,支持通过上传图片在1688平台搜索相似商品。该接口基于图像识别技术,具备高精度匹配、丰富商品信息返回、支持多图片格式及可定制化搜索等特点,适用于电商选品、商品溯源和智能购物等场景。开发者需注册获取app_key与app_secret,并通过Python示例代码调用接口,实现图片搜索功能。
976 23
|
JavaScript IDE 开发工具
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
这篇文章介绍了在Vue 3 + TypeScript + Vite开发环境中解决找不到`.vue`文件模块或其类型声明错误的两种方法:使用VSCode的TypeScript Vue Plugin (Volar)插件或手动在`env.d.ts`文件中声明`*.vue`模块类型。
4112 1
找不到模块“./App.vue”或其相应的类型声明。ts(2307)

热门文章

最新文章