Echarts一张图展示省市区三级区域,无需点击层级查看

本文介绍如何使用Echarts一次性展示省市区三级区域,无需逐级点击。通过在features数组中加入所有区域对象,包括市级和区县级,解决Echarts不自动处理层级的问题。注意对象顺序,避免被上级区域遮挡,可以调整透明度或JSON顺序。示例代码中导入了包含所有区域信息的JSON文件,并提供了地图选择器的相关资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看效果图

 可以看出,图例中不仅展示了湖北省所有市的区域范围,而且随州市的三个行政区划也显示在其中,上完整代码

<template>
  <div>
    <div id="allMap" style="width: 1000px; height: 800px"></div>
  </div>
</template>

<script>
import AllJson from '@/assets/json/All.json'; // 此json下面会具体讲
import * as echarts from 'echarts';
export default {
  name: 'Demo',
  data() {
    return {

    }
  },
  mounted() {
    this.allMap();
  },
  methods: {
    allMap() {
      console.log("412")
      var option = {
        backgroundColor: "#041646",
        title: {
          show: true,
          text: "湖北省",
          top: '10',
          textStyle: {
            color: 'white'
          },
          left: "center"
        },
        series: [
          {
            type: "map", //特效散点图
            mapType: '湖北',
            nameProperty: 'name',
            label: {
              show: true
            },
            geoIndex: 0,
            data: [
              {
                name: '随州市',
                label: {
                  position: 'top',
                  color: 'red',
                  fontWeight: 'bold',
                  fontSize: '16'
                },
                itemStyle: {
                  borderColor: 'red',
                  borderWidth: '2',
                }
              },
            ],
            nameMap: {
              '十堰市': '十堰市',
              '神农架林区': '神农架',
              '恩施土家族苗族自治州': '恩施州',
              '宜昌市': '宜昌市',
              '襄阳市': '襄阳市',
              '荆门市': '荆门市',
              '荆州市': '荆州市',
              '潜江市': '潜江市',
              '天门市': '天门市',
              '仙桃市': '仙桃市',
              '随州市': '随州市',
              '孝感市': '孝感市',
              '咸宁市': '咸宁市',
              '武汉市': '武汉市',
              '黄冈市': '黄冈市',
              '黄石市': '黄石市',
              '鄂州市': '鄂州市'
            },

          }
        ]
      }

      var mapChart = echarts.init(document.getElementById("allMap"));
      echarts.registerMap('湖北', AllJson);

      mapChart.setOption(option);
    },
  }
}
</script>

import AllJson from '@/assets/json/All.json';

        这个JSON文件内容格式跟其他文章提到的是一致的,但从格式上讲,每个区域的边界描边的点位都被限制在这一个数组里,Echarts并不会层级读取,就比如说这是一级下拉选,就算你传一个层级下拉选,它也不会读取子级区域

        我的办法是:既然它只会读取这一级的区域对象,干脆把市下面区县行政区划的描边对象也传入进来,都放入features这个数组里

        需要注意的是:Echarts渲染地图是依据features中区域对象的先后顺序,比如一个市的所有区县对象在市对象前面,就会被后渲染的市描边点位遮挡,这种情况可以将市范围设置透明度或调整JSON文件里面的先后顺序。

有对JSON格式还不理解的可以去我的资源里面下载完整的JSON,JSON文件太大了贴不了文章里,在JSON中搜索“曾都区”便可看到我在湖北省所有市描边点位后增加的三个区县

地图选择器的链接也放这里了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值