echarts 使用geojson数据展示 GeometryCollection出错怎么办?

修复Echarts地图显示问题:GeometryCollection类型的处理
本文档详细介绍了在使用Echarts4和Echarts5时遇到的由于GeoJSON数据中GeometryCollection类型导致地图区域显示为两块不连续的问题。作者提供了一个解决方案,即修改`parseGeoJson.js`源码,处理GeometryCollection类型,将它转化为多个Polygon。此外,还分享了如何通过bigMap和geojson拼接生成街道级别的地图,并给出了参考链接。

在这里插入图片描述

不敢休息,因为没有存款;不敢说累,因为没有成就;不敢偷懒,因为还要生活。一无所有就是我坚强,拼搏的唯一选择。

echarts4和echarts5都存在这个问题

对比geojson数据发现,因为数据类型中有GeometryCollection存在。生成的地图里有一个区域为两块不连续的地图块,所以生成的geoJson中此区域的geometry.type===GeometryCollection

解决方法

修改源码 node_modules\echarts\lib\coord\geo\parseGeoJson.js
116行

export default function parseGeoJSON(geoJson, nameProperty) {
  geoJson = decode(geoJson);
  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {
  ------------------------------------------新增的地方----------------------------
    if (featureObj.geometry.geometries) {
      let geometry = featureObj.geometry.geometries.map(i => {
          return i.coordinates;
      });
      let { type, properties, ...params } = featureObj;
      return 
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值