echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新
ECharts Map地图的显示
ECharts支持地理坐标显示,专门提供了一个geo组件,在setOption中提供option.geo配置即可显示地图。
option.geo配置中有个map属性,取值为已通过 echarts.registerMap("name", geojson) 注册的name值,来关联到对应的geojson数据文件;注册不同名称的geojson地图数据,再修改option.geo.map和regions,就能切换显示不同的地图。
具体参考官方文档:https://echarts.apache.org/zh/option.html#geo

GeoJSON数据文件获取
阿里云的DataV.GeoAtlas可以在线获取到数据,不过数据比较旧(更新于2021.5),截止到2022年12月9日已经一年半的时间没有更新,鉴于浙江省有很多区县的区划有变更调整,不建议使用DataV.GeoAtlas的数据。
到AreaCity-JsSpider-StatsGov开源库可以下载到新的geojson数据,包括四级区划数据、省市区三级坐标边界数据、乡镇级坐标边界数据:
- 在线预览和下载(Gitee):https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/assets/geo-echarts.html (提供了ECharts + 高德地图四级下钻代码)
- 开源库(GitHub):https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov
- 一般一月一更(直接从高德同步,忙的时候没时间会久一点)
下载到的数据是最新的csv文件,同时下载一下开源库提供的转换工具,工具支持将csv数据转换成:shp、geojson、sql、导入数据库、坐标系转换,功能比较丰富,我们只需转成geojson即可。
转换出来的geojson是一个大的文件,里面包含了全国省市区所有数据,我们在ECharts中一般是使用拆分的文件,每个区县一个文件这种,我们到工具的高级功能中拆分这个大的文件成小文件,点开工具的高级功能,里面切换到geojson拆分功能,即可将文件按省市区县进行拆分,我们需要浙江省的数据就copy浙江下面的文件即可。
一般每年都会有地方有区县的变更,所以数据需要按时更新,建议至少一年更新一次数据,更新时按步骤重新下载最新的数据操作一遍即可。
在ECharts中绘制浙江省的数据
我们得到浙江省geojson文件后,里面每个市、区都有对应的一个json文件,我们根据需要展示的地方加载对应的json文件,然后通过echarts.registerMap("City"+城市id, geojson)来注册地图。
然后更新echarts实例的option.geo.map和regions,就能在ecahrts里面显示这个geojson地图了。
给地图绑定点击事件,点击地图的一个城市时,重复上面的步骤,加载下一级json文件,再注册,再显示;这样就可以做到多级下钻。
放张浙江杭州的geojson渲染图吧,比较直观:

相关代码可以参考这个demo页面,里面实现了ECahrts Map四级下钻,和一个高德地图上的绘制显示,前端源码在页面底下。不过这个demo太过于复杂,不方便copy代码使用,过几天我会专门写一篇文章来介绍ECahrts Map代码的编写,敬请期待~
【完】
echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新的更多相关文章
- echarts map 地图在react项目中的使用
需求 展示海南省地图,点击市高亮展示,并在右侧展示对应市的相关数据. 准备工作 Echarts 海南地图json 效果图 代码 index.tsx import React, { useRef, us ...
- Echarts Map地图下钻至县级
**准备工作:**1.首先使用vue-cli的脚手架生成vue项目. 2.然后使用npm安装echartsnpm install echarts -S 3.安装完后再mian.js中挂载到vue的实例 ...
- echarts在地图上绘制散点图(任意点)
项目需求:在省份地图上绘制散点图,散点位置不一定是哪个城市或哪个区县,即任意点 通过查询官网文档,找到一个与需求类似的Demo:https://www.echartsjs.com/gallery/ed ...
- Echarts Map地图类型使用
使用的时候出现了一个BUG, China地图的底色没有绘制出来,现在把一个小的DEMO给大家,以供参考,并附上参考文章(http://blog.csdn.net/danielinbiti/articl ...
- echarts Map(地图) 不同颜色区块显示
以河南地图为例: 代码如下: <h3>天翼日必达完成率</h3> <div id="map" style="height:340px; te ...
- echarts map地图设置外边框或者阴影
geo: { map: 'china', center: [112.194115019531, 23.582111640625], zoom: 12, aspectScale: 1, //长宽比 la ...
- 省市区/国籍 多级联动-jq
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 从区划边界geojson中查询经纬度坐标对应的省市区县乡镇名称,开源Java工具,内存占用低、高性能
目录 坐标边界查询工具:AreaCity-Query-Geometry 性能测试数据 测试一:Init_StoreInWkbsFile 内存占用很低(性能受IO限制) 测试二:Init_StoreIn ...
- (UWP)通过编写算法实现在地图中的渐变路径
目前的一个App中需要实现这个需求,但是在UWP自带的Bing Map中,绘制的MapPolyline的StrokeColor的类型是Windows.UI.Color,也就是说一条MapPolylin ...
- QGIS打印布局中绘制多个子图
QGIS如何绘制多图 数据准备 这是一份英国大曼彻斯特地区的数据,里面包含了教育.收入.人口密度.绿地比例.城市比例等数据,我们准备把这些数据在地图上呈现出来,为此,我们需要做在地图中绘制6幅子图,这 ...
随机推荐
- vue3的Async Components异步组件
前言: 当我们的项目达到一定的规模时,对于某些组件来说,我们并不希望一开始全部加载,而是需要的时候进行加载:这样的做得目的可以很好的提高用户体验. 传统方式引入组件如下,这样会一次先加载所以组件 先在 ...
- 非Navicat破解延长14天试用时间
延长Navicat使用时长 Navicat作为一套多连接数据库开发工具,十分好用,购买正版太过昂贵,破解版过于麻烦,有时候还会有安全问题,好在我们有14天的试用时间,我们可以从这个方面入手 对于有能力 ...
- Mybatis-Plus自动生成器生成代码基于springboot项目启动
创建springbootweb项目 pom.xml 导入 MBP 依赖 <dependency> <groupId>com.baomidou</groupId> & ...
- python-D1-typora软件和计算机入门1
一 typora软件 typora是一款目前非常火爆文本编辑器 1.1 安装 尽量安装在非系统盘符及设置为短路径,方便后面查找 1.2 文件路径 在计算机上就是一个资源的定位坐标,表现为具体在哪里,例 ...
- MyBatis获取参数值的两种方式
MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串拼接,#{}的本质就是占位符赋值 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单 ...
- 分支结构之二:switch-case
1.格式 switch(表达式){case 常量1: 执行语句1; //break; case 常量2: 执行语句2; //break; ... default: 执行语句n; //break; } ...
- Codeforces Round #553 (Div. 2)/codeforces1151
CodeForces1151 Maxim and Biology 解析: 题目大意 每次可以使原串中的一个字符\(+1/-1\),\(Z + 1\to A, A -1\to Z\),求至少修改多少次可 ...
- 二、Kubernetes 概念介绍
一.Master Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它负责具体的 ...
- Linux三剑客awk
Linux三剑客awk awk是一个强大的linux命令,有强大的文本格式化的能力,好比将一些文本数据格式化成专业的excel表的样式 awk早期在Unix上实现,我们用的awk是gawk,是GUN ...
- fastjson反序列化漏洞历史CVE学习整理
fastjson 1.2.24反序列化漏洞复现 先写一个正常的使用 fastjson的web服务 我们使用 springboot创建 主要是pom.xml 里面要添加fastjson fastjson ...