如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践

如何使用 ECharts 将中国地图省份合并为大区

前言:

公司项目要求在中国地图上显示各大区的设备运行情况及其数据,echarts引入地图数据后全是一块一块的省份,但是公司要求将部分省份合并成一个战区,中国地图也就分为了西北战区,北部战区,中部战区,西南战区,东部战区,南部战区六大战区,echarts也没有这个功能只能从echarts支持的map数据入手,如何下载中国地图的json数据,进行处理自定义,将各个省份合并为一个GeoJSON格式的文件,echarts地图可直接引用GeoJson文件进行达到地图合并自定义的效果。

效果:

如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践
如何使用 ECharts 将中国地图省份合并为大区
如何使用 ECharts 将中国地图省份合并为大区

实现

实现步骤一:去阿里云中国地图下载“中国地图JSON”数据:

如何使用 ECharts 将中国地图省份合并为大区

步骤二、在边界生成器中上传刚刚下载的中国地图

如何使用 ECharts 将中国地图省份合并为大区
导入后效果:
如何使用 ECharts 将中国地图省份合并为大区

步骤三、进行项目要求合并

如何使用 ECharts 将中国地图省份合并为大区
选择所属省份地级市合并,以东部战区为例,选中浙江,江苏,安徽,上海三块区域
如何使用 ECharts 将中国地图省份合并为大区
选中完成后,双击两下合并图标,对省份进行合并
如何使用 ECharts 将中国地图省份合并为大区
合并后的结果:发现省份边界都已经合并完成
如何使用 ECharts 将中国地图省份合并为大区
依次往下合并,将项目大区省份合并完成,并导出最终效果:
如何使用 ECharts 将中国地图省份合并为大区

步骤四、echarts地图使用

如果你还没有安装ECharts,可以通过npm进行安装:

npm install echarts --save

接下来,我们将使用一个自定义的GeoJSON文件,该文件已经被处理以包含六个战区的信息,而不是传统的省份划分。确保你已经拥有了这个文件,并将其命名为china.js,放在项目的适 当目录下。

步骤五:初始化ECharts

mounted() {
    // 模拟数据
    this.regionList = [
      { name: "中部战区", value: 0 },
      { name: "西北战区", value: 999 },
      { name: "北部战区", value: 7777 },
      { name: "南部战区", value: 100000 },
      { name: "西南战区", value: 20000 },
      { name: "东部战区", value: 100000001 },
    ];
    // 初始化
    this.drawLine(this.regionList);
  }

drawLine方法:

drawLine(regionList) {
      this.myChart = this.$echarts.init(
        document.querySelector(`#echart_china`)
      );
      this.myChart.setOption({
        legend: {
          show: false, // 将 show 设为 false 即可隐藏图例
        },
        title: {
          text: "",
          subtext: "",
          x: "center",
          textStyle: {
            color: "#fff",
          },
        },
        tooltip: {
          show: false, // 禁用提示框
          trigger: "item",
        },
        visualMap: {
          bottom: "10%",
          type: "piecewise",
          splitNumber: 5,
          max: 50000,
          text: [],
          showLabel: false,
          pieces: [
            {
              min: 1000000,
              max: 9999999999,
              color: "#11242f",
            },
            {
              min: 100000,
              max: 99999999,
              color: "#11242f",
            },
            { min: 10000, max: 99999, color: "#11242f" },
            { min: 1000, max: 9999, color: "#11242f" },
            { min: 1, max: 999, color: "#11242f" },
            { min: 0, max: 0, color: "#11242f" },
          ],
          textStyle: {
            color: "rgb(135,139,153)",
            fontSize: this.FontChart(1.5),
          },
          seriesIndex: 0,
        },
        selectedMode: false, // 开启选中模式
        select: {
          // 地图选中区域样式
          label: {
            // 选中区域的label(文字)样式
            show: true,
            color: "#fff",
          },
          itemStyle: {
            // 选中区域的默认样式
            areaColor: "#11242F",
            borderColor: "#FFFF00", // 鼠标悬停时的边界颜色
            borderWidth: 3, // 鼠标悬浮时的边界宽度
          },
        },
        series: [
          {
            name: "调用量",
            type: "map",
            map: "china", // 使用自定义的战区地图
            roam: false,
            label: {
              normal: {
                show: true,
                textStyle: {
                  color: "#fff",
                },
              },
              emphasis: {
                show: true,
                textStyle: {
                  color: "#fff",
                },
              },
              select: {
                show: true,
                textStyle: {
                  color: "#fff",
                },
              },
            },
            data: regionList.map((item) => ({
              name: item.name,
              value: item.value,
            })),
            itemStyle: {
              normal: {
                areaColor: "#48D5F4",
                borderColor: "#48D5F4", // 战区边界颜色
                borderWidth: 2, // 战区边界宽度
              },
              emphasis: {
                // 11242F
                // rgb(1, 162, 235)
                areaColor: "#11242F", // 鼠标悬停时的区域颜色
                borderColor: "#FFFF00", // 鼠标悬停时的边界颜色
                borderWidth: 3, // 鼠标悬浮时的边界宽度
              },
            },
          },
        ],
        geo: {
          map: "china", // 使用自定义的战区地图
          itemStyle: {
            areaColor: "#FFF", // 设置地图背景颜色
            borderColor: "#48D5F4", // 设置地图外部边界颜色
            borderWidth: 4, // 设置地图外部边界宽度
            shadowBlur: 10, // 阴影模糊度,数值越大,阴影范围越大
            shadowColor: "#48D5F4", // 阴影颜色,设置为与边框颜色相同以达到发光效果
            shadowOffsetX: 0, // 水平方向阴影偏移量
            shadowOffsetY: 0, // 垂直方向阴影偏移量
          },
        },
      });
    },

步骤六、配置echarts可支持的china.js文件

(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    define(['exports', 'echarts'], factory);
  } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
    factory(exports, require('echarts'));
  } else {
    factory({}, require('echarts'));
  }
}(this, function (exports, echarts) {
  var log = function (msg) {
    if (typeof console !== 'undefined') {
      console && console.error && console.error(msg);
    }
  }
  if (!echarts) {
    log('ECharts is not Loaded');
    return;
  }
  if (!echarts.registerMap) {
    log('ECharts Map is not loaded');
    return;
  }
  echarts.registerMap('china', 复制刚刚导入的GeoJson文件的代码);
}));

其中复制从阿里地图上导出的GeoJson文件,复制里面的数据放入china.js的下图红色框框中。
如何使用 ECharts 将中国地图省份合并为大区
所有china.js文件如下:
如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践
echarts中使用自定义的战区地图
如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践
echarts的地图中的其他属性
如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践
最终效果分为两个版本:
下图是实验版本,根据不同大区上色:
如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践

如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践

下图是鼠标移入大区显示对应瑕疵种类:
如何使用 ECharts 将中国地图省份合并为大区保姆级教程,GeoJSON数据合并,真实项目实践
以上就是省份,市区合并为一个地区的所有教程,如果对您有帮助,一键三联哟~

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML是一种标记语言,用于创建网页结构和内容。而ECharts是一个基于JavaScript的可视化图表库,用于在网页上展示各种数据可视化图表。要在HTML页面上使用ECharts展示省份地图,你需要按照以下步骤进行操作: 1. 引入ECharts库:在HTML页面的`<head>`标签中,使用`<script>`标签引入ECharts的JavaScript库文件。可以通过CDN链接或者本地文件引入。 2. 创建一个容器:在HTML页面中,创建一个`<div>`元素,用于容纳地图图表。可以指定一个唯一的ID作为该`<div>`元素的标识符,以便后续操作。 3. 初始化地图图表:在页面的JavaScript部分,使用ECharts的API初始化地图图表。具体代码如下: ```javascript var myChart = echarts.init(document.getElementById('map-container')); ``` 这里假设你给地图容器的ID为"map-container"。 4. 配置地图数据:根据你要展示的省份地图数据,配置地图的相关信息。例如,你可以定义一个JavaScript对象,包含省份名称和对应的数值。 5. 设置地图选项:根据需要,设置地图的样式、颜色、标题等选项。可以通过ECharts提供的API进行设置。 6. 渲染地图图表:最后,调用ECharts的API将配置好的数据和选项渲染到地图容器中。 ```javascript myChart.setOption(option); ``` 这里的`option`是你配置好的地图选项对象。 至于具体的代码实现和更详细的配置说明,可以参考ECharts官方文档和示例。希望这个回答对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值