echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新

ECharts Map地图的显示

ECharts支持地理坐标显示,专门提供了一个geo组件,在setOption中提供option.geo配置即可显示地图。

option.geo配置中有个map属性,取值为已通过 echarts.registerMap("name", geojson) 注册的name值,来关联到对应的geojson数据文件;注册不同名称的geojson地图数据,再修改option.geo.mapregions,就能切换显示不同的地图。

具体参考官方文档:https://echarts.apache.org/zh/option.html#geo

参考文档

GeoJSON数据文件获取

阿里云的DataV.GeoAtlas可以在线获取到数据,不过数据比较旧(更新于2021.5),截止到2022年12月9日已经一年半的时间没有更新,鉴于浙江省有很多区县的区划有变更调整,不建议使用DataV.GeoAtlas的数据。

AreaCity-JsSpider-StatsGov开源库可以下载到新的geojson数据,包括四级区划数据、省市区三级坐标边界数据、乡镇级坐标边界数据:

下载到的数据是最新的csv文件,同时下载一下开源库提供的转换工具,工具支持将csv数据转换成:shp、geojson、sql、导入数据库、坐标系转换,功能比较丰富,我们只需转成geojson即可。

转换出来的geojson是一个大的文件,里面包含了全国省市区所有数据,我们在ECharts中一般是使用拆分的文件,每个区县一个文件这种,我们到工具的高级功能中拆分这个大的文件成小文件,点开工具的高级功能,里面切换到geojson拆分功能,即可将文件按省市区县进行拆分,我们需要浙江省的数据就copy浙江下面的文件即可。

一般每年都会有地方有区县的变更,所以数据需要按时更新,建议至少一年更新一次数据,更新时按步骤重新下载最新的数据操作一遍即可。

在ECharts中绘制浙江省的数据

我们得到浙江省geojson文件后,里面每个市、区都有对应的一个json文件,我们根据需要展示的地方加载对应的json文件,然后通过echarts.registerMap("City"+城市id, geojson)来注册地图。

然后更新echarts实例的option.geo.mapregions,就能在echarts里面显示这个geojson地图了。

给地图绑定点击事件,点击地图的一个城市时,重复上面的步骤,加载下一级json文件,再注册,再显示;这样就可以做到多级下钻。

放张浙江杭州的geojson渲染图吧,比较直观:

浙江杭州

相关代码可以参考这个demo页面,里面实现了ECharts Map四级下钻,和一个高德地图上的绘制显示,前端源码在页面底下。不过这个demo太过于复杂,不方便copy代码使用,过几天我会专门写一篇文章来介绍ECharts Map代码的编写,敬请期待~

【完】

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 ECharts 导入 GeoJSON 文件数据绘制自定义地图的代码示例: 1. 首先,需要引入 ECharts 库和地图组件: ```html <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/echarts.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/echarts-gl.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/extension/dataTool.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.1/extension/bmap.min.js"></script> ``` 2. 然后,需要定义一个容器用于渲染地图: ```html <div id="map" style="width: 100%; height: 600px;"></div> ``` 3. 接着,使用 ECharts 的 `geoJson` 组件导入 GeoJSON 数据: ```js // 导入 GeoJSON 数据 $.getJSON('custom-map.geojson', function (geoJson) { echarts.registerMap('customMap', geoJson, { // 自定义地图的配置项 }); // 渲染地图 var chart = echarts.init(document.getElementById('map')); chart.setOption({ // 其他配置项 series: [ { type: 'map', map: 'customMap', // 使用自定义地图 // 其他配置项 } ] }); }); ``` 4. 最后,在 `getJSON` 方法指定 GeoJSON 文件的路径,即可导入并使用自定义地图。 注意:在代码使用了 jQuery 库的 `getJSON` 方法来加载 GeoJSON 数据,需要确保已经引入了 jQuery 库。如果不想使用 jQuery 库,也可以使用原生的 `XMLHttpRequest` 对象来加载 GeoJSON 数据。 以上就是使用 ECharts 导入 GeoJSON 文件数据绘制自定义地图的代码示例。可以根据实际情况修改自定义地图的配置信息和渲染方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值