vue中使用Echarts map图实现下钻至县级的思路详解

 更新时间:2022年01月06日 11:07:51   作者:不知名切图仔  
这篇文章主要介绍了vue中使用Echarts map图实现下钻至县级,需要注意的是,因为我是直接从 vue-cli2 直接跳到 vue-cli4 ,还奇怪怎么读取不到JSON,查找后才知道 vue-cli3 往后的项目基础架构对比旧版本有些区别,感兴趣的朋友跟随小编一起看看吧

今天给大家分享echarts map地图下钻至县级,因为项目需求需要实现 map 图下钻至县级,也找了很多博客,但是基本都是同一篇博客。

好在最终还是实现了,先上动图:

基本思路都是一致的,获取鼠标点击的参数跳转至指定的 JSON

需要注意的是,因为我是直接从 vue-cli2 直接跳到 vue-cli4 ,还奇怪怎么读取不到JSON,查找后才知道 vue-cli3 往后的项目基础架构对比旧版本有些区别。

以前大家都习惯在根目录下的 static文件夹下创建 JSON 文件,vue-cli3、4没有 static文件夹了,创一个 static文件夹在下面也不行,结果会报错,请求 404找不到文件。

正确的路径是在 public 文件夹下引入

话不多说,步骤如下:

  1 - 首先初始化全国 map

initEcharts("china");
      function initEcharts(map) {
        let option = {
          geo: {
            map: map,
            roam: false,
            scaleLimit: {
              min: 1.2,
              max: 3
            },
            zoom: 1.2,
            //图形上的文本标签,可用于说明图形的一些数据信息
            label: {
              normal: {
                show: true,
                fontSize: "10",
                color: "rgba(0,0,0,0.7)"
              }
            },
            //地图区域的多边形 图形样式,有 normal 和 emphasis 两个状态
            itemStyle: {
              //normal 是图形在默认状态下的样式;
              normal: {
                borderColor: "rgba(0, 0, 0, 0.2)"
              },
              //emphasis 是图形在高亮状态下的样式,比如在鼠标悬浮或者图例联动高亮时。
              emphasis: {
                areaColor: "#F3B329",
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowBlur: 20,
                borderWidth: 0,
                shadowColor: "rgba(0, 0, 0, 0.5)"
              }
            }
          },
          series: [
            {
              name: "信息量",
              type: "map",
              //这里是'china',及因为js中注册的名字,如果是上海市,则该出需pName 指的是'shanghai'
              mapType: map,
              geoIndex: 0
              // data: dataList
            }
          ]
        };
        myChart.setOption(option);
      }

  2 - 定义省份及市区数组,由于太长了我就不放了 (后面需要引用对应的JSON,这些 JSON 和源码 我会打包到 github ,需要自取)

  3 - 点击事件

// 点击触发
      myChart.on("click", param => {
        if (param.name in provinces) {
          // 处理省模块
          let names = param.name;
          for (let key in provinces) {
            if (names == key) {
              showProvince(provinces[key], key);
              break;
            }
          }
        } else if (param.name in cityMap) {
          // 处理市模块
          let names = param.name;
          for (let key in cityMap) {
            if (names == key) {
              showCitys(cityMap[key], key);
              break;
            }
          }
        }
      });

  4 - 渲染 map

//展示对应的省
      function showProvince(eName,param) {
        console.log(eName, param)
        $.getJSON(`/map/province/${eName}.json`, data=>{
          that.$echarts.registerMap(param, data);
          alert("省")
          initEcharts(param);
        })
      }
      //展示对应市
      function showCitys(cName, param) {
        console.log(cName, param)
        // 显示县级地图
        $.getJSON(`/map/city/${cName}.json`, data=>{
          that.$echarts.registerMap(param, data);
          alert("县")
          initEcharts(param);
        })
      }

写在最后:

  代码有很多还需要优化的地方,但是暂解了我的燃眉之急,毕竟我还是个毕业不久的切图仔,源码放在下面,希望能帮到大家 ----https://github.com/RuanChon/mapChart

到此这篇关于vue中使用Echarts map图实现下钻至县级的文章就介绍到这了,更多相关vue Echarts map图下钻至县级内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3解构赋值失去响应式引发的问题思考

    vue3解构赋值失去响应式引发的问题思考

    这篇文章主要介绍了vue3解构赋值失去响应式引发的问题思考,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Vue项目安装插件并保存

    Vue项目安装插件并保存

    今天小编就为大家分享一篇关于Vue项目安装插件并保存,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • vue在线预览word、excel、pdf、txt、图片的方法实例

    vue在线预览word、excel、pdf、txt、图片的方法实例

    最近工作中遇到了一个需要在线预览文件的需求,所以这篇文章主要给大家介绍了vue在线预览word、excel、pdf、txt、图片的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • vue3基于script setup语法$refs的使用

    vue3基于script setup语法$refs的使用

    这篇文章主要介绍了vue3基于script setup语法$refs的使用,<BR> 在用vue3开发项目的时候,需要调用子组件的方法,于是想着用$refs来实现,但是我是使用script setup语法糖,原先vue2的语法已经不适用了。下面我们一起进入文章看详细内容吧</P><P>
    2021-12-12
  • vue3递归组件封装的全过程记录

    vue3递归组件封装的全过程记录

    组件是可以在自己的模板中调用自身的,不过他们只能通过name选项来做这件事,下面这篇文章主要给大家介绍了关于vue3递归组件封装的相关资料,需要的朋友可以参考下
    2021-09-09
  • Vue中JS动画与Velocity.js的结合使用

    Vue中JS动画与Velocity.js的结合使用

    这篇文章主要介绍了Vue中JS动画与Velocity.js的结合使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • vue3父子通信ref,toRef,toRefs使用实例详解

    vue3父子通信ref,toRef,toRefs使用实例详解

    这篇文章主要介绍了vue3父子通信ref,toRef,toRefs使用实例详解,分别介绍了ref是什么、toRef是什么及toRefs是什么和最佳使用方式,结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2023-10-10
  • Vue开发中常见的套路和技巧总结

    Vue开发中常见的套路和技巧总结

    这篇文章主要给大家介绍了关于Vue开发中常见的套路和技巧的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Vuex,iView UI面包屑导航使用扩展详解

    Vuex,iView UI面包屑导航使用扩展详解

    今天小编就为大家分享一篇Vuex,iView UI面包屑导航使用扩展详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 在vue中使用setInterval的方法示例

    在vue中使用setInterval的方法示例

    这篇文章主要介绍了在vue中使用setInterval的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论