基于MapVGL的地理信息三维度数据增长可视化

写在前面


  • 工作中接触,简单整理
  • 博文内容为 基于MapVGL的地理信息维度数据增长可视化 Demo
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


基于MapVGL的地理信息维度数据增长可视化

MapVGL,是一款基于WebGL的地理信息可视化库,可以用来展示大量基于3D的地理信息点线面数据。设计初衷主要是为了解决大数据量的三维地理数据展示问题及一些炫酷的三维效果。

MapVGL通过地理信息数据生成可视化图层,然后将这些图层添加在地图上层进行管理。在这个过程中,它使用了WebGL技术在canvas中绘制图形,从而有效地提高了页面性能。此外,MapVGL还提供了大量的模型,包括点图层、线图层、聚合类图层等,每种模型都提供了示例,可以直接运行查看效果。

需要注意的是,地理信息数据格式是规定好的,必须具有geometry字段来定义坐标信息,同时可通过properties字段添加附件信息。而geometry字段数据格式使用的是GeoJSON的规范。

官方Demo: https://mapv.baidu.com/gl/examples/

官网文档:https://mapv.baidu.com/gl/docs/index.html

下面我们看一个通过 MapVGL 来实现的数据可视化的Demo,某公司全国网点建设历年增长可视化

Demo 地址:https://github.com/LIRUILONGS/MapVGL_Demo

效果图

在这里插入图片描述

实现相对简单,渲染地图,然后添加图层,通过 setInterval 方法对图层进行重复渲染,填充数据为当前数据和增量数据

渲染地图

使用百度地图的WebGL版本(BMapGL)来初始化一个地图实例

 var map = new BMapGL.Map('map_container', {restrictCenter: false,style: { styleJson: options.style || darkStyle }});

使用mapvgl来创建一个视图(View)对象,该对象与先前创建的地图(map)相关联。

 var view = new mapvgl.View({map: map});           

准备图层数据

  // ,绘制带波纹扩散的圆图层数据 var data = cities.map((city, index) => {var cityCenter = mapv.utilCityCenter.getCenterByCityName(city);return {geometry: {type: 'Point',coordinates: [cityCenter.lng, cityCenter.lat]},color: colors[2],// 圆的半径size: 5};});// 波纹动画图层数据 let datas = cities.map((city, index) => {let cityCenter = mapv.utilCityCenter.getCenterByCityName(city);return {geometry: {type: 'Point',coordinates: [cityCenter.lng, cityCenter.lat]},};});............................// 柱状体图层数据// 飞线绘制

周期绘制

        let i = 1setInterval(() => {var waveLayer = new mapvgl.CircleLayer({type: 'wave',radius: r => 3 * r,duration: 1 / 3,trail: 3});view.addLayer(waveLayer);waveLayer.setData(data.slice(0, i));var rippleLayer = new mapvgl.RippleLayer({size: 500000,unit: 'm',color: '#0ff',enablePicked: true,onClick: (e) => { // 点击事件console.log(e);},});view.addLayer(rippleLayer);rippleLayer.setData(datas.slice(0, i));.................i = i + 1;if (i == cities.length + 2) {i = 1view.removeAllLayers()}},3000)

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 😃


github 地址:https://github.com/huiyan-fe/mapv

官方Demo: https://mapv.baidu.com/gl/examples/

官网文档:https://mapv.baidu.com/gl/docs/index.html


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/686894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

市场复盘总结 20240208

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 25% 最常用的…

LGAMEFI基于BPL公链开发的第一生态:开启RWA游戏娱乐与DeFi融合的新纪元

在去中心化金融(DeFi)与游戏娱乐的结合趋势中,BPL公链上的LGAMEFI项目代表了前沿的技术革新和市场领导。这种将web2上成熟页游进行RWA链改,不仅仅是将游戏热门领域融合,更是在寻找一种全新的参与者经验,将玩…

第五节笔记:LMDeploy 大模型量化部署实践

大模型部署背景 参数用FP16半精度也就是2字节,7B的模型就大约占14G 2.LMDeploy简介 量化降低显存需求量,提高推理速度 大语言模型推理是典型的访问密集型,因为是decoder only的架构,需要token by token的生成,因…

从代码的层面掌握LLM的路线

原则:从易到难,只用 pytorch 从第一个项目来熟悉 transformer 的使用; 从第二个项目来掌握对训练数据的使用方法及 transformer 的 decoder 的细节; 从第三个项目来理解 LLM 的整个过程; 1,Transformer t…

C++-手把手教你模拟实现string

1.string的成员变量 模拟实现string只需要三个成员变量,capacity,size,_str,也就是容量,数据大小,指向字符串的指针。 2.string的构造函数 2.1 使用字符串构造 使用字符串来构造一个string类的对象&…

Days 33 ElfBoard 固定CPU频率

ELF 1开发板选用的是主频800MHz NXP的i.MX6ULL处理器。根据实际的应用场景,如果需要降低CPU功耗,其中一种方法可以将CPU频率固定为节能模式,下面以这款开发板为例给小伙伴们介绍一下固定CPU频率的方法。 先来介绍一下与CPU频率相关的命令&…

希捷与索尼集团合作生产HAMR写头激光二极管

最近有报道指出,希捷(Seagate)在生产其采用热辅助磁记录(HAMR)技术的大容量硬盘时,并非所有组件都在内部制造。根据日经新闻的一份新报告,希捷已与索尼集团合作,由索尼为其HAMR写头生…

重塑高校评价体系,缓解内卷,培养有远见的研究者

重塑高校评价体系,缓解内卷,培养有远见的研究者 摘要:当前高等教育和科研环境中普遍存在的“非升即走”制度,尽管表面上看似激励科研人员努力工作,但实际上反映了学术界的内卷状况。这一制度的设置在人才供过于求的背景…

实验二 物理内存管理-实验部分

目录 一、知识点 1、计算机体系结构/内存层次 1.1、计算机体系结构 1.2、地址空间&地址生成 1.3、伙伴系统(Buddy System) 2、非连续内存分配 2.1、段式存储 2.2、页式存储 2.3、快表和多级页表 2.4、段页式存储 3、X86的特权级与MMU 3.…

FPGA中的模块调用与例化

目录 一、模块调用与实例化 1.1 模块调用 1.2 模块实例化 1.3 Verilog例化语句及其用法 1.3.1 例化语句的基本格式 1.3.2 实例化三种不同的连接方法 二、模块调用实例-全加器与半加器 2.1 半加器模块 2.2 全加器模块 三、参数定义关键词与整数型寄存器 3.1 参数定义关…

乡政府|乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)

乡政府管理系统目录 目录 基于Springboot的乡政府管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、活动信息管理 3、新闻类型管理 4、新闻动态管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

视觉设计师的项目评审复盘攻略:如何提升设计质量与效率

视觉设计师的角色是至关重要的,以确保设计项目满足预期的质量和结果。作为一名视觉设计师,有必要进行定期的项目审查,以确保项目在正轨上进行,并尽早解决任何问题。在本文中我们将讨论可视化设计人员如何做好项目评审,…

吴恩达机器学习全课程笔记第一篇

目录 前言 P1 - P8 监督学习 ​无监督学习 P9-P14 线性回归模型 成本(代价)函数 P15-P20 梯度下降 P21-P24 多类特征 向量化 多元线性回归的梯度下降 P25-P30 特征缩放 检查梯度下降是否收敛 学习率的选择 特征工程 多项式回归 前言…

【沐风老师】3DMAX一键书籍生成插件BookMaker使用方法详解

3DMAX书籍制作者插件BookMaker使用方法 3DMAX一键书籍生成插件BookMaker,是用于在3dMax中创建书籍的插件,可以创建高细节的3D书籍模型,具有不同的书籍类型可以选择。 【适用版本】 3dMax2012 – 2024(不仅限于此范围)…

问题记录——c++ sort 函数 和 严格弱序比较

引出 看下面这段cmp函数的定义 //按照vector第一个元素升序排序 static bool cmp(const vector<int>& a, const vector<int>& b){return a[0] < b[0]; }int eraseOverlapIntervals(vector<vector<int>>& intervals) {//按区间左端排序…

RK3399平台开发系列讲解(USB篇)USB 枚举和断开过程

🚀返回专栏总目录 文章目录 一、连接与检测二、USB设备枚举三、断开过程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢介绍 USB 枚举/断开过程。 一、连接与检测 二、USB设备枚举 USB设备枚举一

Linux:docker的Portainer部署

官网 Portainer: Container Management Software for Kubernetes and Dockerhttps://www.portainer.io/ 1.下载 portainer也是一个docker的镜像直接下载即可 docker pull portainer/portainer 2.运行 直接运行镜像即可直接使用 docker run -d -p 8000:8000 -p 9000:9000 -…

VitePress-17- 配置- appearance 的作用详解

作用说明 appearance : 是进行主题模式的配置开关&#xff0c;决定了是否启用深色模式。 可选的配置值&#xff1a; true: 默认配置&#xff0c;可以切换为深色模式&#xff1b; false: 禁用主题切换&#xff0c;只使用默认的配置&#xff1b; dark: 默认使用深色模式&#xff…

《PCI Express体系结构导读》随记 —— 第II篇 第13章 PCI总线与虚拟化技术(6)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第13章 PCI总线与虚拟化技术&#xff08;5&#xff09; 13.2 ATS&#xff08;Address Translation Services&#xff09; 单纯使用IOMMU并不能充分发挥处理器系统的效率&#xff0c;从图13-2中可以发现&…

TIM编码器接口(编码器测速)

定时器编码器接口自动计次--------->对应手册14.3.12编码器接口模式 应用场景&#xff1a; 电机控制PWM驱动电机&#xff0c;编码器测电机速度&#xff0c;PID算法闭环控制 ------------------------------------------------------------------------------------------…