echarts画精确到街道的地图

本文介绍如何利用Echarts将地图精确到街道级别。首先从阿里云获取区级轮廓图的JSON文件,然后从北斗网站下载街道轮廓的KML文件。由于Echarts在解析某些类型时出错,需要在`parseGeoJson.js`中修改源码。为确保团队成员都能获取到修复后的代码,使用patch-package创建补丁,并将其添加到`postinstall`命令,这样每次安装依赖时都会应用补丁。
摘要由CSDN通过智能技术生成

最终效果图:
在这里插入图片描述

  1. 精确到区的可以先去获取区级的轮廓图:
    阿里云
    在这里插入图片描述
    右侧有JSON文件,复制进项目即可。
  2. 需要精确到乡镇、街道,获取对应的街道轮廓KML:
    北斗
    在这里插入图片描述目前没发现批量下载的方法,几个街道就下载几次,收集好下载的所有kml
  3. 目前准备工作做完了,需要拼接所有信息,获得最终JSON文件:
    GeoJson
    在这里插入图片描述
    这里注意一下,目前这个站点不知道是不是地域屏蔽了,第一需要梯子,第二需要梯子选择美国站点才能顺利进去。
  4. echarts引入JSON,但是区级JSON引入项目报错,目前版本是5.4.0,

Uncaught Error:Invalid geoJson format Cannot read property ‘length‘ of undefind

可以看出来是echarts自己本身解析的问题,没能解析出来“GeometryCollection”
需要在node_modules中把echarts文件改了,路径是

node_modules\echarts\lib\coord\geo\parseGeoJson.js

找到parseGeoJSON函数,直接无脑复制粘贴:

export default function parseGeoJSON(geoJson, nameProperty) {
   
  geoJson = decode(geoJson);
  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {
   
    if (featureObj.geometry.geometries) {
   
        let geometry =
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值