Echarts中地图不显示问题总结

        在引入Echarts后,发现绘制中国地图时map无法显示;这是由于echarts 4.9.0以后的版本移除了map地图,而项目中安装的echarts版本为5.4.0。官方文档描述如下[1]:

v5 移除了内置的 geoJSON(原先在 echarts/map 文件夹下)。这些 geoJSON 文件本就一直来源于第三方。如果使用者仍然需要他们,可以去从老版本中得到,或者自己寻找更合适的数据然后通过

        既然知道是由于高版本移除map导致地图不显示,解决echarts5地图不显示的问题,可尝试以下方案:

方案1、降低echarts版本

        简单粗暴,删除原有5.4.0版本,下载4.9.0版本的echarts

npm uninstall echarts
npm install echarts@4.9.0 --save

        除使用地图需要增加: import 'echarts/map/js/china.js'。其余使用步骤如常:

import * as echarts from 'echarts';
import 'echarts/map/js/china.js'

drawMap() {
  let that = this
  // 初始化echarts实例
  const mapChart = echarts.init(document.getElementById("mapChart"));
  //窗口尺寸改变
  window.addEventListener("resize",function(){
    mapChart.resize();
  })
  var option = {
    tooltip: {
      formatter: function(params, ticket, callback) {
        return params.name + ":" + params.value;
      } // 数据格式化
    },
    visualMap: {
      min: 0,
      // max: this.maxData,
      max: this.provinceMaxValue,
      left: "right",
      top: "bottom",
      text: ["高", "低"], // 取值范围的文字
      textStyle: {
        color: "#f5f9f5"
      },
      inRange: {
        color: ["#f5f9f5", "#006edd"] // 取值范围的颜色
      },
      show: true // 图注
    },

    // label: {
    //   show: true,
    //   position: 'inner',
    //   formatter: '{a}%'
    // },
    geo: {
      map: "china",
      roam: false, // 不开启缩放和平移
      zoom: 1.23, // 视角缩放比例
      label: {
        normal: {
          show: true,
          fontSize: "12",
          color: "#00000099"
        },
        emphasis: {
          textStyle: {
            color: "#00000099"
          }
        }
      },
      itemStyle: {
        normal: {
          borderColor: "rgba(0, 0, 0, 0.2)"
        },
        emphasis: {
          areaColor: "#F3B329", // 鼠标选择区域颜色
          shadowOffsetX: 0,
          shadowOffsetY: 0,
          shadowBlur: 20,
          borderWidth: 0,
          shadowColor: "rgba(0, 0, 0, 0.5)"
        }
      }
    },
    series: [
      {
        name: "数量",
        type: "map",
        geoIndex: 0,
        // data: this.dataList
        data: this.regionCountList
      }
    ]
  };
  mapChart.setOption(option);
  mapChart.on("click", function(params) {
    if (that.categoryValue === '' || that.A0Code === '') {
      that.$message({
        showClose: true,
        message: '品类和A0不可为空!',
        type: 'warning'
      });
      return
    }

    const loading = that.$loading({
        lock: true,
        text: '数据获取中...',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
    });
    const paramData={
      category: that.categoryValue,
      deviceModel: parseInt(that.A0Code),
      // brandCodeSet: this.brandCodeSet,
      province: that.formatterProvince(params.name),
      // subCategory:
    }
    statDeviceSoftVersion(paramData).then((response) => {
      loading.close();
      if(response && response.errorCode === '0') {
        let pieData = []
        response.result.versionItemList.forEach(item => {
          pieData.push({
            name: '版本:' +  item.softwareVersion + ' 比例:' + item.ratio +'%',
            value: item.ratio
          })
        })
        that.drawPieChart(that.formatterProvince(params.name), pieData)
      }
    }).catch((error) => {
      that.$message.error('获取版本数据出错:' +error);
      loading.close();
      reject(error.toString())
    });
    // alert(params.name);
  });
},

方案2、增加map文件

        既然echarts V5版删除了map文件,那么通过在node_modules/echarts中添加回map文件夹,如下图。至于map文件可以通过网盘获取,也可以安装4.9.0版本后拷贝出来,此处,若安装低版本后地图直接可用没任何问题,就不用增加map文件。

方案3、多版本echarts解决地图问题

        通过安装多个版本echarts,并在不同场景使用不同的版本。首先,安装不同版本依赖

npm install echarts@5.4.0
npm install echarts4@npm:echarts@^4.9.0

        在main.js或者不同页面内注册时加以区分[2]

import * as echarts from 'echarts'

// 需要引入地图的页面
import * as echarts4 from 'echarts4'
// 加载echarts4版本总的china.js
import 'echarts4/map/js/china.js'
echarts4.registerMap('china', chinaMap)

[1] v4 升级 v5 指南 - 版本特性 - 入门篇 - 使用手册 - Apache ECharts

[2] echarts5 没有map(实现中国地图+按需引入)_echarts5地图-CSDN博客

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在HBuilderX使用ECharts显示地图,您可以按照以下步骤操作: 1. 首先,下载ECharts库。您可以从ECharts官方网站上下载ECharts库。 2. 在HBuilderX的项目,创建一个HTML文件,命名为index.html。 3. 将下载好的ECharts库文件(echarts.js)复制到您的项目文件夹,并将其引入到index.html文件。您可以使用以下代码将ECharts库文件引入到HTML文件: ```html <script src="echarts.js"></script> ``` 4. 接下来,您需要创建一个容器来显示地图。在index.html文件,使用<div>标签创建一个具有适当宽度和高度的容器。例如: ```html <div id="map" style="width: 600px; height: 400px;"></div> ``` 5. 在JavaScript部分,初始化ECharts实例,并将其绑定到容器上。然后,根据您的需要,配置地图的数据和样式。例如,以下代码创建了一个简单的地图示例: ```javascript var myChart = echarts.init(document.getElementById('map')); var option = { title: { text: '地图示例', textStyle: { color: '#c2c2c2', fontSize: 23 } }, series: [{ type: 'map', map: 'china' }] }; myChart.setOption(option); ``` 6. 最后,在HBuilderX打开index.html文件,并通过运行或预览功能查看地图显示效果。 总结起来,要在HBuilderX使用ECharts显示地图,您需要下载ECharts库文件,并将其引入到HTML文件。然后,创建一个适当大小的容器,并在JavaScript部分初始化ECharts实例,并配置地图的数据和样式。 希望这能帮助到您!如果还有其他问题,请随时提问。 引用: ECharts官方网站: http://echarts.baidu.com/download.html 引入ECharts库文件的代码示例 ECharts地图示例代码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值