当前位置: 首页 > news >正文

开源网络地图可视化第六章学习指南

源代码地址:开源网络地图可视化-配套代码.zip - 蓝奏云

配套书籍:开源网络地图可视化——基于Leaflet的在线地图开发 (杨乃) (Z-Library)(1).pdf - 蓝奏云

3 第六章Leaflet地图动画

3.1 图标动画

3.1.1 沿线运动

沿线运动的动画使用了Leaflet.Geodesic.js插件。按照教材要求,这里首先确定飞行起始点和终止点分别为洛杉矶和柏林,接下来下载并引用 Leaflet.Geodesic.js插件和LeafLet.AnimatedMarker.js 插件,然后开始构建测地线对象,并指定一个图标样式,加载动画图层。接着增加播放和停止窗口并绑定相应函数,最后进行运行和调试代码。代码的可视化结果如图3.1-1所示。

图3.1-1沿线运动图

代码的程序流程主要依照【开始网页】-【获取数据】-【构建测地线】-【添加动画】-【添加按钮】-【结束】的主线流程进行,如图3.1-2所示。

图3.1-2 程序流程图

3.1.2 时间轴控件

在Leaflet中可以应用Leaflet.TimeDimension.js库实现时间轴控件的加载,这里首先获取包含时间以及路径的数据,接下来新建一个html文档并引入iso8601.js库和leaflet.timedimension.src.js库,在创建地图时创建时间轴,并指定 Gif 图标。随后使用AJAX方法异步加载数据,数据加载完成后构造时间图层并添加,最后调试并运行代码。代码的可视化结果如图3.1-3所示。

图3.1-3 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建地图】-【构造geojson图层】-【添加时间图层】-【结束】的主线流程进行,如图3.1-4所示。

图3.1-4 程序流程图

3.2 折线动画

3.2.1 蛇形动画

在Leaflet中,蛇形动画可以使用LeafLet.Polyline.SnakeAnim库和jQuery库来实现。这里首先在高德地图申请路径规划API并记住相应的key。使用LeafLet.ChineseTmsProviders加载高德地图的常规地图图层,添加地图鼠标事件用于选择起始点、终止点坐标。使用jQuery调用高德路径规划API,获得相应路径数据并进行解析,并将数据添加至动画图层,最后调试和运行代码。代码的可视化结果如图3.2-1所示。

图3.2-1 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建地图】-【构造gpxTimeLayer】-【添加时间图层】-【结束】的主线流程进行,如图3.2-2所示。

图3.2-2 程序流程图

3.2.2 虚线动画

虚线的动画的实现方法和蛇形动画的实现方法相同,不过不一样的是这里的线路的样式需要做成虚线形式。代码的可视化结果如图3.2-3所示。

图3.2-3 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建地图】-【添加蛇形动画】-【解析高德路径】-【结束】的主线流程进行,如图3.2-4所示。

图3.2-4 程序流程图

3.2.3 蚂蚁动画

蚂蚁动画的实现方法和上面两种动画的实现底层方法都一致,不过不一样的是这里的线路的样式需要做成蚂蚁样式。代码的可视化结果如图3.2-5所示。

图3.2-5 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建地图】-【添加蛇形虚线动画】-【解析高德路径】-【结束】的主线流程进行,如图3.2-6所示。

图3.2-6 程序流程图

3.2.4 流向图动画

流向图动画可以使用Leaflet.Canvas-Flowmap-Layer.js库和其相关依赖库tween.js来实现,这里开启一个新HTML文件并引入相关头后可以使用LeafLet.ChineseTmsProviders加载高德地图的常规地图图层,准备一对多的csv数据。使用omnivore库加载csv数据,构建Geojson数据,再创建一个canvasFlowmapLayer图层,并添加相应鼠标事件,最后调试和运行代码。代码的可视化结果如图3.2-7所示。

图3.2-7 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建流向地图】-【添加贝塞尔曲线】-【显示流向动画】-【结束】的主线流程进行,如图3.2-8所示。

图3.2-8 程序流程图

3.3 流场动画

3.3.1 插件leaflet-velocity

在Leaflet中,流场动画可以使用leaflet-velocity插件,这里首先需要下载leaflet-velocity库,并准备相应数据。首先,使用天地图作为地图底图,然后使用D3读取经向和纬向方向的数据,创建矢量动画图层,并添加相关的交互功能,接下来调试并运行代码。代码的可视化结果如图3.3-1所示。

图3.3-1 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建流场地图】-【添加贝交互控件】-【结束】的主线流程进行,如图3.3-2所示。

图3.3-2 程序流程图

3.3.2 插件Leaflet.CanvasLayer.Field

在Leaflet中,流场动画还可以使用Leaflet.CanvasLayer.Field插件来实现。这里首先下载Leaflet.CanvasLayer.Field插件,并准备相应数据。使用天地图影像地图作为地图图底,然后使用D3读取经向和纬向方向的数据,创建矢量动画图层,并添加相关的交互功能,最后添加图例,调试和运行代码。代码的可视化结果如图3.3-3所示。

图3.3-3 时间轴样式图

代码的程序流程主要依照【开始网页】-【获取数据】-【创建流场地图】-【添加交互控件】-【添加图例】-【结束】的主线流程进行,如图3.3-4所示。

图3.3-4 程序流程图

相关文章:

  • 电脑声音小怎么调大 查看声音调整方法
  • 什么叫裸机开发
  • Fiori学习专题四十一:表单控件
  • Gemini 2.5 推动视频理解进入新时代
  • Python爬虫常用项
  • 数据结构——例题1
  • [特殊字符]CentOS 7.6 安装 JDK 11(适配国内服务器环境)
  • LeetCode热题100--206.反转链表--简单
  • MongoDB 的主要优势和劣势是什么?适用于哪些场景?
  • LeetCode 热题 100_多数元素(97_169_简单_C++)(哈希表;排序)
  • 【2025年前端高频场景题系列】使用同一个链接,如何实现PC打开是web应用、手机打是-个H5 应用?
  • UE5通过C++实现TcpSocket连接
  • X1A000171000300,FC2012AN,32.768kHz,2012mm,EPSON晶振
  • 【Flask全栈开发指南】从零构建企业级Web应用
  • 影刀RPA开发-CSS选择器介绍
  • 第三章 初始化配置(一)
  • 【C++详解】类和对象(上)类的定义、实例化、this指针
  • esp32硬件支持AT指令
  • Leetcode 3544. Subtree Inversion Sum
  • 【Nova UI】十五、打造组件库之滚动条组件(上):滚动条组件的起步与进阶
  • 美国务卿鲁比奥将前往土耳其参加俄乌会谈
  • 俄副外长:俄美两国将举行双边谈判
  • 学习教育期间违规吃喝,李献林、叶金广等人被通报
  • 习近平同巴西总统卢拉共同会见记者
  • 习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 央行等印发《关于金融支持广州南沙深化面向世界的粤港澳全面合作的意见》