先上效果图

再说思路
第一步: 生成中国地图
第二步: 定义点击事件根据反参生成省级地图所需要的参数
第三步: 将省级地图所需要的参数传入渲染方法重新渲染

最后说步骤

准备 1 npm echarts 2下载各省地图json 传送门

// 引用初始化所需的中国地图
import echarts from "echarts";
import china from 'echarts/map/json/china.json'
import axios from 'axios'
echarts.registerMap('china', china)

定义生成参数option方法

getMapOpt(place) {let option = option = {backgroundColor: '#404a59',title: {text: "mapDemo",subtext: "data from map",left: "center"},geo: {map: place?place:'china',label: {emphasis: {show: false}},roam: true,itemStyle: {normal: {areaColor: '#323c48',borderColor: '#111'},emphasis: {areaColor: '#2a333d'}}},}return option},

定义渲染生成中国地图和各省地图的方法

  //显示中国地图showChinaMap(){let option = this.getMapOpt()this.map.setOption(option, true);},//显示各省地图getProvinceMapOpt(provinceAlphabet){axios.get('static/province/'+provinceAlphabet+'.json').then((s)=>{echarts.registerMap(provinceAlphabet, s.data)let option = this.getMapOpt(provinceAlphabet)this.map.setOption(option, true);})},

初始化方法,生成中国地图及定义点击事件

  initMap() {var dom = document.getElementById("left_map");this.map = echarts.init(dom);let option = this.getMapOpt()if (option && typeof option === "object") {this.map.setOption(option, true);}this.map.on('click', (param)=> {event.stopPropagation()// 阻止冒泡// 找到省份名let provinceIndex = provincesText.findIndex(x=>{return param.name ===x})if(provinceIndex===-1)returnlet provinceAlphabet = provinces[provinceIndex]// 重新渲染各省份地图this.getProvinceMapOpt(provinceAlphabet)})}

整份代码

<template><div class="content row-flex-start" style="min-width:1500px;ovorflow-x:auto"><div class="left_map" id="left_map"  @click="showChinaMap"></div><div class="right_opetate row-center" id="right_opetate"></div></div>
</template><script>
import echarts from "echarts";
import china from 'echarts/map/json/china.json'
import axios from 'axios'
echarts.registerMap('china', china)var provinces = ['shanghai', 'hebei','shanxi','neimenggu','liaoning','jilin','heilongjiang','jiangsu','zhejiang','anhui','fujian','jiangxi','shandong','henan','hubei','hunan','guangdong','guangxi','hainan','sichuan','guizhou','yunnan','xizang','shanxi1','gansu','qinghai','ningxia','xinjiang', 'beijing', 'tianjin', 'chongqing', 'xianggang', 'aomen', 'taiwan'];var provincesText = ['上海', '河北', '山西', '内蒙古', '辽宁', '吉林','黑龙江',  '江苏', '浙江', '安徽', '福建', '江西', '山东','河南', '湖北', '湖南', '广东', '广西', '海南', '四川', '贵州', '云南', '西藏', '陕西', '甘肃', '青海', '宁夏', '新疆', '北京', '天津', '重庆', '香港', '澳门', '台湾'];
export default {created() {this.cityOpt = cityName;},mounted() {this.$nextTick(() => {this.initMap();});},data() {return {map :{},cityOpt: [],mapForm: {},mapData: [{ name: "海门", value: 100 }],mapOpt: []};},props: {},methods: {getMapOpt(place) {let option = option = {backgroundColor: '#404a59',title: {text: "mapDemo",subtext: "data from map",left: "center"},geo: {map: place?place:'china',label: {emphasis: {show: false}},roam: true,itemStyle: {normal: {areaColor: '#323c48',borderColor: '#111'},emphasis: {areaColor: '#2a333d'}}},}return option},//显示中国地图showChinaMap(){let option = this.getMapOpt()this.map.setOption(option, true);},//显示各省地图getProvinceMapOpt(provinceAlphabet){axios.get('static/province/'+provinceAlphabet+'.json').then((s)=>{echarts.registerMap(provinceAlphabet, s.data)let option = this.getMapOpt(provinceAlphabet)this.map.setOption(option, true);})},initMap() {var dom = document.getElementById("left_map");this.map = echarts.init(dom);let option = this.getMapOpt()if (option && typeof option === "object") {this.map.setOption(option, true);}this.map.on('click', (param)=> {event.stopPropagation()// 阻止冒泡// 找到省份名let provinceIndex = provincesText.findIndex(x=>{return param.name ===x})if(provinceIndex===-1)returnlet provinceAlphabet = provinces[provinceIndex]// 重新渲染各省份地图this.getProvinceMapOpt(provinceAlphabet)})}},computed: {}
};
</script><style>
.left_map {width: 1200px;height: 100%;
}
.right_opetate {flex: 1;height: 100%;background: #404a59
}
.map_form {}
</style>

echarts+vue中国地图,点击进入省级地图相关推荐

  1. echarts的中国地图,点击进入省级地图,按需加载对应的省js,可返回中国地图

    这是我项目中用到的示例图: 原理:创建两个省份的数组,在点击某个省份的时候,遍历获取对应省份的数据js,并加载此数据js,同时重新初始化echarts渲染此省份的数据效果 1.省份数组,用于遍历获取对 ...

  2. echarts的中国地图,点击进入省级地图,点击省级地图,返回中国地图

    先上效果图, 鼠标放上去时的效果,如下图所示: 点击进入到的省级地图,如下图所示: 中国地图,鼠标放上去时的代码: myChart.on('mouseover', function (params) ...

  3. vue实现世界疫情地图(点击进入子地图)

    vue实现世界疫情地图,点击可以进入子地图 效果展示 寻找数据源 设置代理 发送请求提取数据 提取数据 踩坑 处理数据并绘图 国内疫情地图数据处理绘制 海外疫情地图数据处理绘制 完整代码 代码优化 点 ...

  4. vue - vue使用echarts实现中国地图和点击省份进行查看

    文章目录 1,实现的效果和功能 2,安装ECharts 3,main.js里面引入echarts 4,实现如下 5,遇到的问题 6,用到的模拟数据 1,实现的效果和功能 vue使用echarts实现中 ...

  5. 【echarts 中国地图射线版本】vue实现中国地图航线动画效果,地图上添加散点效果【详细注释,通俗易懂】

    先上效果图 前置条件,必看 首先你需要安装echarts并引入 然后你需要下载china.json文件并注册引入,不然不生效 当然很多新手可能不知道china.json在哪里下载,因为官方已经没有了, ...

  6. vue+echarts实现中国地图省市区下钻以及添加标注

    最近项目中有需要地图下钻和添加标注的需求,就先做了一个demo,在博客上查了一些资料,结合实际情况,发现除了一些状况,发篇文章,采集一下各位大佬的意见. 效果呈现 目前还没有问题,下面是省内地图,然后 ...

  7. Vue+Echarts实现中国地图的省市切换

    Vue+Echarts实现中国地图的省市切换 首先要安装一下Echarts npm install echarts 在min.js中引入echarts import * as echarts from ...

  8. Vue + Echarts 实现中国地图多级钻取功能

    传送门:本文完整代码地址 如果觉得有帮助,别忘了点亮 star 哦 说明: 本文为 Vue 2.x + Echarts 5.x 实现中国地图多级钻取功能(基本版 未做过多功能拓展和样式优化 便于二次开 ...

  9. echarts全国地图点击弹窗(Vue)

    前言 echarts使用很多次了,可以配置地图还是第一次,要实现的是地图上标注两个点,点击点弹出弹窗,点击可以跳转,效果如下: Echarts官网配置项参考 Echarts官网的一参考demo 贴关键 ...

最新文章

  1. Python初学者零碎基础笔记(一)
  2. Michael Jordan、Sutton、Silver等人,刚刚入选英国皇家学会会士
  3. Windows系统安全管理
  4. qt ui界面加入qsplitter_UI 文件设计与运行机制
  5. 操作系统(2) -- 进程管理
  6. Java中的out.write()和out.print()的区别
  7. 使用Tool Bar切换视图
  8. 纯js分页代码(简洁实用)
  9. 代码规范与读写可维护性
  10. 拓端tecdat|R语言highfrequency高频金融数据导入
  11. 数据库设计原则、表字段命名规则、索引调优建立规则
  12. 【牛客网刷题】(第二弹)中等难度题型来了.这些题你都会做吗?
  13. javascript 生成 UUID GUID 浏览器环境 NodeJS环境 纯JavaScript函数
  14. Excel单元格锁定与数据隐藏
  15. linux系统中各颜色的代表
  16. linux 文件比较覆盖,Linux系统 wget 覆盖本地文件
  17. Kaggle Tweet Sentiment Extraction竞赛
  18. 如何用python整理表格_Python 自动整理 Excel 表格
  19. 如何将u盘里面的两个分区变成为一个分区
  20. 期股和原始股的区别?

热门文章

  1. SIR,CQI,RSSI(转自搜狗百科)LTE上报的CQI、PMI、RI分别有什么用(转载自C114论坛)...
  2. 论文阅读 - On the efficacy of old features for the detection of new bots - CCF B
  3. 连接问题:ORA-3136:inbound connection timed out
  4. ApkScan-PKID查壳工具+脱壳(搬运)
  5. 图解Http协议 url长度限制
  6. 微信公众号开发使用测试号不能测试支付接口的解决方案
  7. Web前端之样式继承与其他概念
  8. 《鲸鱼安慰了大海》精选篇章
  9. 台式电脑打开计算机很慢,台式电脑慢怎么处理_台式电脑很慢很卡的解决方法-系统城...
  10. d3带箭头和点击事件的力导向关系图