Echarts地图下钻—一个案例+PBF文件拆分工具

echarts-drill-down

预览地址
项目地址

项目简介

  • 本项目提供了一个echarts下钻到市级区域的示例(精度到区县一级)
  • 同时支持通过命令直接生成中国边界线GeoGson文件,中国地图GeoJson文件(精度包含省、市、区县)以及按省份(名称、code)划分的省级GeoJson文件市级GeoJson文件,源文件来源于AntV L7 GISDATA页面使用的pdf文件
  • 行政区划代码依赖province-city-china

项目缘由

最近遇到一个需要离线地图下钻的场景,之前倒也是做过,不过只下钻到省一级,功能很简单。所以一开始遇到这个需求的时候一口应下,想着无非是GeoJson数据的问题。 在网上找了一阵,当然也发现了很多在线的Json/GeoJson数据,也发现了echarts-map-demo这个开源项目,到这以为任务就完成了。

不过全量下载数据后发现一些问题,首先是直辖市和港澳台缺少市一级的数据(在我们之前的方案中,一般来说直辖市我们会模拟一个市辖区来对齐其他省份的市一级)。

其次部分省份的市级数据也是有缺失的,例如:

当然我可以在这个项目提供的网站上点击地图对应的区域然后下载单个文件,但是这样需要一个一个单独下载的话我直接通过CDN或其他资源下载或者写个脚本下载保存也是一样的,比如下面这个网站上的数据就很全。

五级区划查询与下载

调研了几个小时,无奈没有完全符合需求又下载简单的数据(可能在某些网友的网盘里正躺着),想了一下这个还算挺常见的需求,于是我打算写一个能拆分PBF文件的工具,然后想着既然拆分工具都写了直接再写个案例得了,所以才有了本项目。

目前只下钻到区县级,不过只要有PBF文件,微调抽取命令代码想精确到街道一级也是很快就能搞定的。

启动

javascript 复制代码
* 安装依赖
pnpm i
* 启动项目
pnpm dev

抽取命令

javascript 复制代码
* 执行以下命令 支持local和antv两种模式
pnpm make:geojson [mode]

### 参数说明
* local 模式:依赖项目根目录/public/pbf目录下的pbf文件生成最终的GeoJson文件
* antv 模式:如果antv使用的CDN资源有更新,你可以使用此模式拉取最新的pbf文件来生成最终的GeoJson文件

生成文件一览

名称和code命名的文件/目录各一份,省级(精度到市级)单文件34个,市级(精度到区县)文件按省划分为34个文件夹,总共136个文件和目录。

文件说明

javascript 复制代码
echarts-drill-down
                 |-public
                 |   |-pbf                           # tinymce 编辑器静态资源
                 |   |-boundary                      # 存储antv页面使用的中国边界GeoJson文件
                 |   |-geojson
                 |   |   |-china.geojson             # 中国边界线geojson
                 |   |   |-china-province.geojson    # 中国地图geojson,精度到省级
                 |   |   |-china-city.geojson        # 中国地图geojson,精度到市级
                 |   |   |-china-county.geojson      # 中国地图geojson,精度到区县级
                 |   |   |-provinces                 # 拆分提取的geojson数据
                 |   |             |-文件                 # 名称或code对应省份的geojson数据,精度到市
                 |   |             |-目录                 # 名称或code对应省份下市级的geojson数据,精度到区县
                 |   |-favicon.ico                   # favicon 图标

其他

  • 建议使用pnpm作为包管理工具
  • 建议node ≥ 18.20,否则make:geojson命令不可用,原因参考 issue
相关推荐
码界筑梦坊1 天前
240-基于Python的医疗疾病数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts
码界筑梦坊1 天前
243-基于Django与VUE的笔记本电脑数据可视化分析系统
vue.js·python·信息可视化·数据分析·django·毕业设计·echarts
xiaohe06013 天前
🥳 Uni ECharts 2.1 发布:正式支持鸿蒙,零成本迁移、全平台兼容、跨端开发零负担!
vue.js·uni-app·echarts
前端_Danny4 天前
使用 ECharts + ECharts-GL 生成 3D 环形图
3d·信息可视化·echarts
景早4 天前
小黑记账清单案例(axios,echarts,vue)
前端·vue.js·echarts
uuai5 天前
echarts不同版本显示不一致问题
前端·javascript·echarts
马卫斌 前端工程师5 天前
vue3 实现echarts 3D 地图
前端·javascript·echarts
盼哥PyAI实验室7 天前
纯前端打造个人成长网站:零后端、零部署、零服务器的实践分享
运维·服务器·前端·javascript·echarts·个人开发
Lsx_7 天前
详解ECharts中的convertToPixel和convertFromPixel
前端·javascript·echarts
java水泥工8 天前
基于Echarts+HTML5可视化数据大屏展示-工厂信息监控台
echarts·html5·可视化大屏·大屏模版