Echarts 绘制地图省、市、区、县(以及点击显示下级,支持坐标定位)


**

Echarts 绘制地图省、市、区、县(以及点击显示下级,支持坐标定位)

**

上代码

javascript 复制代码
<template>
  <div class="mapCont">
    <div id="mapSelf" @contextmenu.prevent="disableContextMenu"></div>
  </div>
</template>
  
<script>
import * as echarts from 'echarts'
import mapData from "./addressMode/xiangyang.json";//引入json数据   下载地址http://datav.aliyun.com/tools/atlas/#&lat=37.82280243352756&lng=107.4462890625&zoom=4
import maplhk from "./addressMode/老河口市.json";
export default {
  name: "HelloWorld",
  data() {
    return {
      chart: null,
      rowData: [
        { name: "谷城县", jwd: [111.659572, 32.269471], value: [111.659572, 32.269471, 12] },
        { name: "谷城县", jwd: [111.659572, 32.200471], value: [111.659572, 32.200471, 24] },
      ]
    };
  },
  mounted() {
    this.mapInit(mapData, this.rowData)

  },
  methods: {
    mapInit(modeData, rowData) {
      this.chart = echarts.init(document.getElementById("mapSelf"));
      echarts.registerMap("xiangyang", modeData); //mapData是定义的数据初始化
      this.chart.setOption({
        // legend: {//可设置多个颜色
        //   orient: 'vertical',
        //   x: 'left',
        //   data: ['蓝点', '红点']
        // },
        // tooltip: {
        //   trigger: "item",
        //   formatter: "{b}",
        // },
        geo: {//定义地图样式
          type: "map",
          map: "xiangyang",
          aspectScale: 0.75, //长宽比
          selectedMode: "single", //表示选种模式是否为单选"mutiple"表多选
          showLegendSymbol: false, // 存在legend时显示
          label: {
            normal: {
              show: true,
              textStyle: {
                color: "#FFFFFFcc", //文字颜色
                fontSize: 16
              }
            },
            emphasis: {
              show: true,
              textStyle: {
                color: "#fff", //鼠标hover文字颜色
                fontSize: 18
              }
            }
          },
          itemStyle: {
            normal: {
              areaColor: "#0069e5", //整个背景填充颜色
              borderColor: "#ffffff" //边界颜色
            },
            emphasis: {
              areaColor: "darkorange" //鼠标hover颜色,区域选中颜色
            }
          },
        },
        series: [
          {
            name: "蓝点",
            type: "effectScatter", //影响散点
            coordinateSystem: "geo",
            symbolSize: 12,
            showEffectOn: "render",
            rippleEffect: {
              brushType: "stroke"
            },
            hoverAnimation: true,
            label: {
              normal: {
                color: "white",
                formatter: "{b}",
                position: "right",
                show: false
              },
              emphasis: {
                show: true
              }
            },
            itemStyle: {
              normal: {
                color: "white",
                shadowBlur: 10,
                shadowColor: "white" //闪烁圈的颜色
              }
            },
            data: rowData,

          },
          // {//可配置多个数据源
          //   name: "红点",
          //   type: "effectScatter", //影响散点
          //   coordinateSystem: "geo",
          //   symbolSize: 12,
          //   showEffectOn: "render",
          //   rippleEffect: {
          //     brushType: "stroke"
          //   },
          //   hoverAnimation: true,
          //   label: {
          //     normal: {
          //       color: "red",
          //       formatter: "{b}",
          //       position: "right",
          //       show: false
          //     },
          //     emphasis: {
          //       show: true
          //     }
          //   },
          //   itemStyle: {
          //     normal: {
          //       color: "red",
          //       shadowBlur: 10,
          //       shadowColor: "red" //闪烁圈的颜色
          //     }
          //   },
          //   data: [
          //     { name: "宜城市", jwd: [112.265758, 31.726944], value: [112.265758, 31.726944, 12] },
          //     { name: "枣阳市", jwd: [112.779625, 32.134729], value: [112.779625, 32.134729, 24] },
          //   ]
          // }
        ]
      });
      // 点击每个市所获取到的值,这里可进行相关操作
      this.chart.on("click", (params) => {
        console.log(params);
        if (params.name == "老河口市") {
          this.chart.dispose();
          this.mapInit(maplhk, [{ name: "老河口", jwd: [111.682704, 32.393923], value: [111.682704, 32.393923, 12] }])
        }
      });
      this.chart.on("contextmenu", (params) => {
        console.log(params);
        this.chart.dispose();
        this.mapInit(mapData, this.rowData)
      });
    },
    disableContextMenu(e) {//禁用右键显示保存图片
      e.preventDefault();
    }
  },


};
</script>
<style scoped>
.mapCont {
  width: 1000px;
  height: 800px;
}
#mapSelf {
  width: 100%;
  height: 100%;
}
</style>
相关推荐
她似晚风般温柔7892 分钟前
Uniapp + Vue3 + Vite +Uview + Pinia 实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app
布瑞泽的童话21 分钟前
Vue 也能这样玩?Vuetify 打造超强大的UI体验
前端·vue.js·ui·开源
加勒比海涛23 分钟前
ElementUI 快速入门:使用 Vue 脚手架搭建项目
前端·vue.js·elementui
安冬的码畜日常30 分钟前
【CSS in Depth 2 精译_031】5.3 Grid 网格布局的两种替代语法
前端·css·css3·html5·网格布局·网格·css布局
sun_weitao31 分钟前
extends in javascript
开发语言·前端·javascript
Jiaberrr1 小时前
轻松切换淘宝最新镜像源,加速npm依赖安装
前端·javascript·vue.js·npm·node.js
Teln_小凯1 小时前
VUE + NODE 历史版本安装
前端·javascript·vue.js
hai405871 小时前
切换淘宝最新npm镜像源是
前端·npm·node.js
亦世凡华、1 小时前
探索 Electron:助力文档操作应用快速落地
前端·javascript·经验分享·electron·前端框架
waterHBO1 小时前
react js 使用 useEffect 钩子
前端·javascript·react.js