空间信息可视化——WebGIS前端实例(一)

news2025/4/16 16:48:20

技术栈:原生HTML

源代码:CUGLin/WebGIS: This is a project of Spatial information visualization

4 全国贫困县可视化系统

4.1 系统设计思想

党的十九大报告明确指出,要“确保到2020年我国现行标准下农村贫困人口实现脱贫,贫困县全部摘帽,解决区域性整体贫困,做到脱真贫、真脱贫”[1]。

从2012年到2020年,历时8年,现行标准下9899万农村贫困人口全部脱贫,国务院扶贫开发领导小组办公室认定的832个贫困县全部实现脱贫,我国历史性告别绝对贫困。这无疑是彪炳史册的历史性功绩,这场伟大的奇迹广受联合国秘书长在内的国内外一致称赞,为世界提供了中国模式和中国方法[2]。

八年间,地理信息领域学者矢志不渝助力脱贫攻坚。王海起等通过构建扶贫地理知识图谱为复合贫困整体提供解决方案[3],刘一臻等通过设计三维地理信息服务于脱贫攻坚指挥系统的建设与应用[4],关显明等通过采用众包的模式实现精准扶贫地理信息采集系统[5]。GIS技术作为强大的工具,在这场反贫困斗争中发挥了不可替代的作用。

基于这样的时代背景,全国贫困县可视化系统的设计思想应运而生,旨在通过先进的地理信息可视化技术,直观展现我国脱贫攻坚战的辉煌成就与历程,同时为后续的乡村振兴及可持续发展提供决策支持与经验借鉴。

4.2 贫困县数据处理

4.2.1 数据获取

国家级贫困县,又称国家扶贫工作重点县或国定贫困县,是国家为帮助贫困地区设立的一种标准。全国共有832个国家级贫困县(包括县级行政单位,县、区、旗、县级市、自治县、自治旗)。国家为扶持贫困地区,设立国家级贫困县标准,资格经国务院扶贫开发领导小组办公室认定,审批工作共进行过三次。少数民族自治地区有不同评定标准,称民族自治地方国家扶贫工作重点县。

针对具体的贫困县数据,官方网站并没有具体的名单表格发布,而在百度百科中有纯文本格式的各个贫困县的脱贫时间,因此这里无法采用爬虫方法爬取,只能采取手工方法查找整理。(百科网址:国家级贫困县_百度百科)

同时,系统需要使用到行政边界数据,这里应用的行政边界数据是选取自阿里云的地图选择器,按照需求下载对应区域的GeoJSON数据即可。(阿里云选择器网址:DataV.GeoAtlas地理小工具系列)

4.2.2 数据处理

获取的数据主要分为两类,即矢量边界数据和贫困县数据,矢量边界数据是直接存储为GeoJSON数据,主要包含了“Feature”、“geometry”等字段,其中数据严谨且时效,符号标准底图要求,这里以南海区域的十段线为例,如图4.2-1所示。

图4.2-1 南海区域十段线

而贫困县数据这里可以手动存储为js格式的数据,即利用var ()方法存储为数组,方便后期调用。此外,系统应用了WMTS技术,即应用矢量瓦片底图作为底图,这方面的数据可以通过Leaflet的addTo()方法直接进行调用。

本系统主要应用到的数据如表4.2-1所示。

表4.2-1 应用数据表

数据名称

数据类型

数据来源

矢量边界数据

GeoJSON

阿里云地图选择器

贫困县数据

JavaScript

百度百科

栅格底图数据

Tiff

ESDIS、Google Map、天地图

4.3 系统设计

4.3.1 总体设计

本系统的项目文件夹为全国贫困县可视化系统,项目包含3个文件夹和index文件,分别是CSS文件夹,负责存放有关的CSS样式文件;Data文件夹,负责存放项目中所使用到的数据文件;JS文件夹,负责存放项目中所使用到JavaScript文件。同时在主文件夹中还包含3个文件,index.html是项目的入口HTML文件,程序从此处开始进入并运行;index.css是项目样式表文件,负责项目有关的样式编写;index.js是项目逻辑文件,负责项目有关的逻辑编写。此外,还提供了笔者获取的原始数据“脱贫县数据.docx”和处理后的数据“贫困县名单.pdf”。项目结构图如图4.3-1所示。

图4.3-1 项目结构

项目大致流程主要分为数据获取、输出处理、程序编写、系统测试四大主要部分。如图4.3-2所示。

图4.3-1 项目流程图

4.3.2 界面设计

系统界面主要由三个部分组成:地图部分、图表部分、交互部分。地图部分主要用于显示基础地图,表达出地域的位置信息及底图附带的其他包含信息,图表部分主要负责表达出不同级别区域下的贫困县统计数据,交互部分主要负责进行页面的交互,实现地图和图表的动态切换,此外还可以监听鼠标事件实现动态交互功能。

4.3.3 逻辑设计

逻辑设计主要涉及四大方面的内容:数据读取、地图制作、表格绘制、交互响应。数据读取应当是页面加载后最先完成的部分,主要负责利用数据读取库从文件中读取相应的数据存储为JavaScrpit对象。地图制作主要负责利用LeafLet及其相关插件绘制并渲染地图,实现地图的相关功能。表格绘制主要负责利用D3库绘制当前状态下的统计图表。交互相应主要负责利用Jqurey库、D3库等实现页面的交互功能。

4.4 程序汇编

4.4.1 开发环境

本系统编写采用原生 JavaScript+HML+CSS 进行编写,基于 LeafLet 框架以及papaparse.js库、turf.min.js库和jquery-3.7.1.js库实现 Web 端地图程序,同时结合 d3.js库进行表格的绘制。系统开发使用的IED为Visual Studio Code 2022,使用了Live Preview和HTML CSS Support等插件进行开发。

4.4.2 主界面汇编

HTML文件主要由Head和Body两个部分组成。Head部分主要负责引入所需要的CSS和JS文件。Body部分主要为HTM的框架结构。Body部分包含一个id为containr的div容器,其下又分为id分别为side-bar和map-wrapper的容器,分别承载工具和地图。HTML的架构如图4.4-1所示。

图4.4-1 HTML架构图

4.4.3 逻辑函数汇编

整个程序的逻辑函数全部汇编于“index.js”中,主要编写了基础图元加载和交互操作处理的事务逻辑:当选中指定的区域和年份后,会首先获取并过滤得到相应区域的贫困县数量和边界数据,然后将该数据通过turf.js库转换为Geojson数据准备进行加载。预加载前,向根据选择区域加载其边界数据。然后判断加载数据的情况,显示不同的数据类型。与此同时,根据选择底图类型,添加相对应的瓦片图底。同时,根据选择的区域和选择的类型获取并计算该状态下的贫困县统计数据,使用d3.js将绘制到表格中。系统整体的逻辑流程如图4.4-2所示。

图4.4-2 系统逻辑流程图

4.5 系统展示

输入发布的网址或打开index.html进入系统后,界面为填充全屏的LeafLet图框,并且默认加载了由ESDIS提供的NASA2012夜间灯光影响瓦片地图,而其上方则会分布三个交互选项栏,分别为“区域”、“年份”和“底图”的选项。如图4.5-1所示。

图4.5-1 系统默认打开界面

用户可以自行选择感兴趣的区域和发电类型,使用交互栏中的下拉菜单选择特定的区域和年份查看指定区域指定年份下的贫困县分布情况。这里以全国2015年的贫困县分布情况为例,点击第一个下拉框,选择“全国”;点击第二个下拉框,选择“2015”,点击第三个下拉框,选择“Satellite Image night”。如图4.5-2所示。

图4.5-2 全国贫困县可视化情况

当用户将鼠标置于不同的区域位置,会在右上角的表格中显示对应的区域的数据,同时不同省份包含不同的贫困县数量,这里主要采用的是自然间断法进行分级处理,针对不同的级别的省份赋予不同的质地,同时在左下角放置图例图框供用户参考,此外还在右侧放置了d3.js库绘制的汇总统计样表,并按顺序级数排列,主要的表格参考说明如图4.5-3所示。

图4.5-3 绘制表格方法

这里可以查看具体省份的贫困县分布情况,点击第一个下拉框,选择“安徽省”;点击第二个下拉框,选择“2015”,点击第三个下拉框,选择“TianDiTu Normal Map”。如图4.5-4所示。

图4.5-4 安徽省贫困县可视化情况

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

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

相关文章

10.第二阶段x64游戏实战-添加计时器

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:9.第二阶段x64游戏实战-创建项目代码获取人物属性 效果图: 当前游戏…

【论文阅读】MOE奠基论文《Adaptive Mixtures of Local Experts》

《Adaptive Mixtures of Local Experts》 前言一、让协同学习竞争1.1 方案1.2 方案演变的由来 二、让竞争学习协同2.1 竞争学习2.2 竞争学习协同 三、案例验证3.1 任务背景3.2 实验结果3.3 后续工作 (Future Work) 前言 论文提出了一个基于多个分离网络的有监督学习方案,该方案…

VM虚拟机安装及Ubuntu安装配置

VM虚拟机安装及Ubuntu安装配置 1、VM虚拟机安装2、创建虚拟机3、Ubuntu系统安装4、编译环境配置4.1 、Ubuntu和 Windows文件互传 文件互传4.1.1、 开启Ubunt下的FTP服务 4.2、 Ubuntu下NFS和SSH服务开启4.2.1、 NFS服务开启4.2.2、 SSH服务开启 4.3、 交叉编译器安装4.3.1 安装…

【C++ 进阶】泛型算法:概述

目录 一、泛型算法基础概念 1.1 什么是泛型算法? 1.2 核心设计原则 1.3 算法分类体系 1.4 与 STL 容器的关系 二、迭代器:泛型算法的 “钥匙” 2.1 迭代器类型 2.2 迭代器适配器 三、常用泛型算法分类与实战 3.1 非修改型算法(只读…

系统与网络安全------Windows系统安全(10)

资料整理于网络资料、书本资料、AI,仅供个人学习参考。 域与活动目录 域相关概念 域和域控制器 域(Domain) 集中管理网络中多台计算机的一种逻辑模式 有别于工作组的对等式管理 是组织与存储资源的核心管理单元 域控制器(D…

Linux vagrant 导入ubuntu到virtualbox

前言 vagrant 导入ubuntu虚拟机前提要求 安装 virtualbox 和vagrant<vagrant-disksize> (Linux 方式 Windows 方式)创建一键部署ubuntu虚拟机 /opt/vagrant 安装目录/opt/VirtualBox 安装目录/opt/ubuntu22/Vagrantfile (可配置网络IP,内存,cpu,磁盘及分区,启动项,…

C++ 用红黑树封装map/set

前言 一、源码结构分析 二、模拟实现map/set 2.1 套上KeyOfT 2.2 普通迭代器实现 2.3 const迭代器实现 2.4 解决key不能修改的问题 2.5 map的[]实现 2.6 map/set以及红黑树源码 2.6.1 RBTree.h 2.6.2 set.h 2.6.3 map.h 总结 前言 之前的文章讲解了红黑树的具体实…

量子计算未来的潜力和挑战

据麦肯锡预测&#xff0c;到 2035 年或 2040 年&#xff0c;量子计算市场规模可能增长至约 800 亿美元。目前&#xff0c;许多量子比特技术正竞相成为首台通用、无差错量子计算机的基础&#xff0c;但仍面临诸多挑战。 我们将探讨量子计算的未来前景、潜力&#xff0c;以及它对…

五笔输入法学习的抉择:86版 or 98版?(一场关于效率与传承的思辨)

新开直接98&#xff0c;纯粹高开&#xff1b;老版过渡艰辛自知&#x1f60b;。 笔记模板由python脚本于2025-04-14 19:22:22创建&#xff0c;本篇笔记适合喜好汉字衷情母语的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;…

为您的 Web 应用选择最佳文档阅读器

为显示选择合适的文档查看器是开发 Web 应用过程中至关重要的一步。文档查看器应能在提供功能性的同时&#xff0c;确保用户体验的流畅性。 开发人员必须评估多种因素&#xff0c;以确保效率、性能和兼容性。本文将帮助您了解影响用户文档浏览体验成功与否的关键指标。 渲染质…

微服务之protobuf:下载、语法和使用一站式教程

基本介绍 Protobuf全称 Protocol Buffer&#xff0c;是 Google 公司于2008年开源的一种语言无关、平台无关、可扩展的用于序列化结构化数据——类似于XML&#xff0c;但比XML更小、更快、更简单&#xff0c;它可用于&#xff08;数据&#xff09;通信协议、数据存储等。你只需…

Ollama调用多GPU实现负载均衡

文章目录 &#x1f4ca; 背景说明&#x1f6e0;️ 修改 systemd 服务配置1. 配置文件路径2. 编辑服务文件2. 重新加载配置并重启服务3. 验证配置是否成功 &#x1f4c8; 应用效果示例1. 调用单个70b模型2. 调用多个模型&#xff08;70b和32b模型&#xff09; 总结&#x1f4cc;…

WebRTC实时通话EasyRTC嵌入式音视频通信SDK,构建智慧医疗远程会诊高效方案

一、方案背景 当前医疗领域&#xff0c;医疗资源分布不均问题尤为突出&#xff0c;大城市和发达地区优质医疗资源集中&#xff0c;偏远地区医疗设施陈旧、人才稀缺&#xff0c;患者难以获得高质量的医疗服务&#xff0c;制约医疗事业均衡发展。 EasyRTC技术基于WebRTC等先进技…

AIoT 智变浪潮演讲实录 | 刘浩然:让硬件会思考:边缘大模型网关助力硬件智能革新

4 月 2 日&#xff0c;由火山引擎与英特尔联合主办的 AIoT “智变浪潮”技术沙龙在深圳成功举行&#xff0c;活动聚焦 AI 硬件产业的技术落地与生态协同&#xff0c;吸引了芯片厂商、技术方案商、品牌方及投资机构代表等 700 多位嘉宾参会。 会上&#xff0c;火山引擎边缘智能高…

【Windows】系统安全移除移动存储设备指南:告别「设备被占用」弹窗

Windows系统安全移除移动存储设备指南&#xff1a;告别「设备被占用」弹窗 解决移动硬盘和U盘正在被占用无法弹出 一、问题背景 使用Windows系统时&#xff0c;经常遇到移动硬盘/U盘弹出失败提示「设备正在使用中」&#xff0c;即使已关闭所有可见程序。本文将系统梳理已验证…

ArmSoM Sige5 CM5:RK3576 上 Ultralytics YOLOv11 边缘计算新标杆

在计算机视觉技术加速落地的今天&#xff0c;ArmSoM 正式宣布其基于 ​​Rockchip RK3576​​ 的旗舰产品 ​​Sige5 开发板​​ 和 ​​CM5 核心板​​ 全面支持 Ultralytics YOLOv11 模型的 RKNN 部署。这一突破标志着边缘计算领域迎来新一代高性能、低功耗的 AI 解决方案&am…

【ubuntu】linux开机自启动

目录 开机自启动&#xff1a; /etc/rc.loacl system V 使用/etc/rc*.d/系统运行优先级 遇到的问题&#xff1a; 1. Linux 系统启动阶段概述 方法1&#xff1a;/etc/rc5.d/ 脚本延时日志 方法二&#xff1a;使用 udev 规则来触发脚本执行 开机自启动&#xff1a; /etc/…

操作系统导论——第19章 分页:快速地址转换(TLB)

使用分页作为核心机制来实现虚拟内存&#xff0c;可能会带来较高的性能开销。使用分页&#xff0c;就要将内存地址空间切分成大量固定大小的单元&#xff08;页&#xff09;&#xff0c;并且需要记录这些单元的地址映射信息。因为这些映射信息一般存储在物理内存中&#xff0c;…

计算机网络:流量控制与可靠传输机制

目录 基本概念 流量控制&#xff1a;别噎着啦&#xff01; 可靠传输&#xff1a;快递必达服务 传输差错&#xff1a;现实中的意外 滑动窗口 基本概念 换句话说&#xff1a;批量发货排队验收 停止-等待协议 SW&#xff08;发1份等1份&#xff09; 超时重传&#xff1a;…

架构生命周期(高软57)

系列文章目录 架构生命周期 文章目录 系列文章目录前言一、软件架构是什么&#xff1f;二、软件架构的内容三、软件设计阶段四、构件总结 前言 本节讲明架构设计的架构生命周期概念。 一、软件架构是什么&#xff1f; 二、软件架构的内容 三、软件设计阶段 四、构件 总结 就…