vue3 echarts 各省地图展示

效果:

1.在src下新建utils文件夹添加各省地图的json文件(下载各省地图的网址 DataV.GeoAtlas地理小工具系列)

2.安装echarts

npm install echarts

3.在项目文件中中引入json

<template>
    <div class="back">
        <div id="chinaMap" class="china-map"></div>
    </div>
</template>
<script lang="ts" setup>
import * as echarts from 'echarts';
import { ref, reactive, computed, onMounted } from "vue";
import { getProvince,findProvinceSaltProduct,getProvinceCompany } from "../../../common/api.js";
import AnHuiData from '../../../utils/anhui.json'
import AoMenData from '../../../utils/aomen.json'
import BeiJingData from '../../../utils/beijing.json'
import ChongQingData from '../../../utils/chongqing.json'
import FuJianData from '../../../utils/fujian.json'
import GanSuData from '../../../utils/gansu.json'
import GuangDongData from '../../../utils/guangdong.json'
import GuangXiData from '../../../utils/guangxi.json'
import GuiZhouData from '../../../utils/guizhou.json'
import HaiNanData from '../../../utils/hainan.json'
import HeBeiData from '../../../utils/hebei.json'
import HLJData from '../../../utils/heilongjiang.json'
import HeNanData from '../../../utils/henan.json'
import HuBeiData from '../../../utils/hubei.json'
import HuNanData from '../../../utils/hunan.json'
import JiangSuData from '../../../utils/jiangsu.json'
import JiangXiData from '../../../utils/jiangxi.json'
import JiLinData from '../../../utils/jilin.json'
import LiaoNingData from '../../../utils/liaoning.json'
import NeiMengGuData from '../../../utils/neimenggu.json'
import NingXiaData from '../../../utils/ningxia.json'
import QingHaiData from '../../../utils/qinghai.json'
import ShanDongData from '../../../utils/shandong.json'
import ShangHaiData from '../../../utils/shanghai.json'
import ShanXiData from '../../../utils/shanxi.json'
import shanXiData from '../../../utils/shanxi1.json'
import SiChuanData from '../../../utils/sichuan.json'
import TaiWanData from '../../../utils/taiwan.json'
import TianJinData from '../../../utils/tianjin.json'
import XiangGangData from '../../../utils/xianggang.json'
import XinJiangData from '../../../utils/xinjiang.json'
import XiZangData from '../../../utils/xizang.json'
import YunNanData from '../../../utils/yunnan.json'
import ZheJiangData from '../../../utils/zhejiang.json'


onMounted(() => {
  findProvinceSaltProducts()
});

//获取省份
const TYDatalist:any = ref([])
const provinceNames = ref<string>('');
const getProvinces = () => {
  getProvince().then((res:any)=>{
      console.log(res);
      provinceNames.value = res.provinceName
      if(provinceNames.value == '湖北省'){
        TYDatalist.value = HuBeiData
        initMap()
      }else if(provinceNames.value == '山西省'){
        TYDatalist.value = ShanXiData
        initMap()
      }else if(provinceNames.value == '安徽省'){
        TYDatalist.value = AnHuiData
        initMap()
      }else if(provinceNames.value == '澳门'){
        TYDatalist.value = AoMenData
        initMap()
      }else if(provinceNames.value == '北京市'){
        TYDatalist.value = BeiJingData
        initMap()
      }else if(provinceNames.value == '重庆市'){
        TYDatalist.value = ChongQingData
        initMap()
      }else if(provinceNames.value == '福建省'){
        TYDatalist.value = FuJianData
        initMap()
      }else if(provinceNames.value == '甘肃省'){
        TYDatalist.value = GanSuData
        initMap()
      }else if(provinceNames.value == '广东省'){
        TYDatalist.value = GuangDongData
        initMap()
      }else if(provinceNames.value == '广西省'){
        TYDatalist.value = GuangXiData
        initMap()
      }else if(provinceNames.value == '贵州省'){
        TYDatalist.value = GuiZhouData
        initMap()
      }else if(provinceNames.value == '海南省'){
        TYDatalist.value = HaiNanData
        initMap()
      }else if(provinceNames.value == '河北省'){
        TYDatalist.value = HeBeiData
        initMap()
      }else if(provinceNames.value == '黑龙江省'){
        TYDatalist.value = HLJData
        initMap()
      }else if(provinceNames.value == '河南省'){
        TYDatalist.value = HeNanData
        initMap()
      }else if(provinceNames.value == '湖南省'){
        TYDatalist.value = HuNanData
        initMap()
      }else if(provinceNames.value == '江苏省'){
        TYDatalist.value = JiangSuData
        initMap()
      }else if(provinceNames.value == '江西省'){
        TYDatalist.value = JiangXiData
        initMap()
      }else if(provinceNames.value == '吉林省'){
        TYDatalist.value = JiLinData
        initMap()
      }else if(provinceNames.value == '辽宁省'){
        TYDatalist.value = LiaoNingData
        initMap()
      }else if(provinceNames.value == '内蒙古自治区'){
        TYDatalist.value = NeiMengGuData
        initMap()
      }else if(provinceNames.value == '宁夏回族自治区'){
        TYDatalist.value = NingXiaData
        initMap()
      }else if(provinceNames.value == '青海省'){
        TYDatalist.value = QingHaiData
        initMap()
      }else if(provinceNames.value == '山东省'){
        TYDatalist.value = ShanDongData
        initMap()
      }else if(provinceNames.value == '上海市'){
        TYDatalist.value = ShangHaiData
        initMap()
      }else if(provinceNames.value == '陕西省'){
        TYDatalist.value = shanXiData
        initMap()
      }else if(provinceNames.value == '四川省'){
        TYDatalist.value = SiChuanData
        initMap()
      }else if(provinceNames.value == '台湾'){
        TYDatalist.value = TaiWanData
        initMap()
      }else if(provinceNames.value == '天津市'){
        TYDatalist.value = TianJinData
        initMap()
      }else if(provinceNames.value == '香港'){
        TYDatalist.value = XiangGangData
        initMap()
      }else if(provinceNames.value == '新疆维吾尔自治区'){
        TYDatalist.value = XinJiangData
        initMap()
      }else if(provinceNames.value == '西藏自治区'){
        TYDatalist.value = XiZangData
        initMap()
      }else if(provinceNames.value == '云南省'){
        TYDatalist.value = YunNanData
        initMap()
      }else if(provinceNames.value == '浙江省'){
        TYDatalist.value = ZheJiangData
        initMap()
      }
    })
}
const MapdataList = ref([])
const findProvinceSaltProducts = () =>{
  let param = new FormData()
  param.append('startDate',searchForm.time[0]?searchForm.time[0]:'')
  param.append('endDate',searchForm.time[1]?searchForm.time[1]:'')
  param.append('companyId',searchForm.companyName)
  findProvinceSaltProduct(param).then((res:any) =>{
    MapdataList.value = res
    getProvinces()
  })
}
const initMap = async () => {
  var chartDom = document.getElementById('chinaMap');
  echarts.dispose(chartDom as HTMLElement);
  var myChart = echarts.init(chartDom);
  myChart.hideLoading();
  echarts.registerMap('DT', TYDatalist.value);
  var mapBoxOption = {
      tooltip: {
        trigger: 'item',
        formatter:function (params:any) {
          if(params.value){ 
            return params.name  + '<br/>' +  params.value +'吨'; 
          }else{ 
            return  params.name + '<br/>' + '0'+'吨'; 
          } 
        }
      },
      visualMap: {
        min: 0,
        max: 500000,
        text: ['MAX', '0'],
        realtime: true,
        calculable: true,
        inRange: {
          color: ['#51adcf','#177cb0','#34699a']
        },
        textStyle:{
          color:'#fff'
        }
      },
      series: [
        {
          type: 'map',
          map: 'DT',
          label: {
            show: true
          },
          data: MapdataList.value,
        }
      ]
  }
  myChart.setOption(mapBoxOption);
};
</script>

const MapdataList = ref<Array<{ name: any; value: any; fromName: any; }>>([])
const findProvinceSaltSaleIns = () =>{
  let param = new FormData()
  param.append('startDate',searchForm.time[0]?searchForm.time[0]:'')
  param.append('endDate',searchForm.time[1]?searchForm.time[1]:'')
  param.append('companyId',searchForm.companyName)
  findProvinceSaltSaleIn(param).then((res:any) =>{
    interface CitySales {
        name: string;
        value: number;
        fromName:Array<{ from: string; sales: number }>;
    }
    //对数据进行处理
    var list = [];
    const citySalesMap: Record<string, CitySales> = reactive({});

    for (var i = 0; i < res.length; i++) {
        var cityName = res[i].cityName;
        var salesNum = res[i].salesNum;
        var fromName = res[i].fromCityName;
        if (citySalesMap.hasOwnProperty(cityName)) {
            citySalesMap[cityName].value += salesNum;
            citySalesMap[cityName].fromName.push({
                from:fromName,
                sales:salesNum
            })
        } else {
            list.push({
                name: cityName,
                value: salesNum,
                fromName: [{
                    from:fromName,
                    sales:salesNum
                }]
            });

            citySalesMap[cityName] = list[list.length - 1];
        }
    }
    MapdataList.value = list
    
    getProvinces()
  })
}
const initMap = async () => {
  var chartDom = document.getElementById('chinaMap');
  echarts.dispose(chartDom as HTMLElement);
  var myChart = echarts.init(chartDom);
  // myChart = echarts.init(chartDom);
  myChart.hideLoading();
  echarts.registerMap('HK', TYDatalist.value);
  var mapBoxOption = {
      tooltip: {
        trigger: 'item',
        formatter:function (params:any) {
            if (params.value && params.data.fromName.length > 0) {
            const fromNameHtml = params.data.fromName.map((item:any) => `${item.from}:${item.sales}吨`).join('<br/>');
                return `${params.name}<br/>${fromNameHtml}`;
            } else {
                return `${params.name}<br/>0吨`;
            }
        }
      },
      visualMap: {
        min: 0,
        max: 500000,
        text: ['MAX', '0'],
        realtime: true,
        calculable: true,
        inRange: {
          color: ['#51adcf','#177cb0','#34699a']
        },
        textStyle:{
          color:'#fff'
        }
      },
      series: [
        {
          type: 'map',
          map: 'HK',
          label: {
            show: true
          },
          data: MapdataList.value,
        }
      ]
  }
  myChart.setOption(mapBoxOption);
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/241296.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在接触新的游戏引擎的时候,如何能快速地熟悉并开发出一款新游戏?

引言 大家好&#xff0c;今天分享点个人经验。 有一定编程经验或者游戏开发经验的小伙伴&#xff0c;在接触新的游戏引擎的时候&#xff0c;如何能快速地熟悉并开发出一款新游戏&#xff1f; 利用现成开发框架。 1.什么是开发框架&#xff1f; 开发框架&#xff0c;顾名思…

微信小程序、uniapp仿扎克新闻(附源码)

介绍 本着试试 mpvue 的态度开发此程序&#xff0c;界面主要是模仿 ZAKER 新闻&#xff0c;数据全部是由 Mock 随机生成的&#xff0c;使用的是 Easy-Mock 服务。本程序只开发了的几个页面&#xff0c;尝试了自定义组件&#xff0c;路由跳转及参数传递等功能。再开发下去只是组…

微信游戏开发:连接社交与娱乐的创新之路

在移动互联网时代&#xff0c;微信已经成为了人们日常生活中不可或缺的社交工具。而微信游戏&#xff0c;作为在这一平台上崛起的新兴产业&#xff0c;不仅给用户提供了更多娱乐选择&#xff0c;也为开发者们创造了独特的机遇。本文将探讨微信游戏开发的关键步骤、技术要点以及…

C# OpenCvSharp DNN 部署yolov5旋转目标检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN 部署yolov5旋转目标检测 效果 模型信息 Inputs ------------------------- name&#xff1a;images tensor&#xff1a;Float[1, 3, 1024, 1024] -------------------------------------------------------------…

六、CM4树莓派USBRS转485串口通讯

一、串行通讯接口 串行通讯接口简称串口&#xff08;UART&#xff09; 采用串行通信方式的扩展接口&#xff0c;数据位一位一位的按照顺序传送 优点&#xff1a;通信线路简单&#xff0c;只要一对传输线就可以实现双向通信能够大大降低成本&#xff0c;适合远距离通信。 缺点…

【后端学前端】第三天 css动画 动态搜索框(定位、动态设置宽度)

1、学习信息 视频地址&#xff1a;css动画 动态搜索框&#xff08;定位、动态设置宽度&#xff09;_哔哩哔哩_bilibili 2、源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>test3</title>…

紫光展锐CEO任奇伟博士:展锐5G芯筑基当下,迈向未来

12月5日&#xff0c;紫光集团执行副总裁、紫光展锐CEO任奇伟博士受邀出席2023世界5G大会5G产业强基发展论坛&#xff0c;发表了题为《展锐5G芯&#xff1a;筑基当下&#xff0c;迈向未来》的演讲。 ​ 世界5G大会由国务院批准&#xff0c;国家发展改革委、科技部、工信部与地方…

Re58:读论文 REALM: Retrieval-Augmented Language Model Pre-Training

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;REALM: Retrieval-Augmented Language Model Pre-Training 模型名称&#xff1a;Retrieval-Augmented Language Model pre-training (REALM) 本文是2020年ICML论文&#xff0c;作者来自…

使用 MySQL连接 c#(简易)

目录 一&#xff0c;下载与本机MySQL相应版本的连接插件1&#xff0c;查找本机下载的MySQL版本2&#xff0c;进入MySQL网站下载连接插件 二&#xff0c;使用C#创建项目进行插件引用1&#xff0c;打开C#创建一个新项目2&#xff0c;引用下载的连接插件 三&#xff0c;进行连接&a…

指针浅谈(四)

在指针浅谈(三)中http://t.csdnimg.cn/wYgJG我们知道了数组名是什么&#xff0c;任何用指针访问数组&#xff0c;一维数组传参的本质是什么&#xff0c;这一次我们来学习二级指针&#xff0c;指针数组&#xff0c;以及如何用指针数组模拟二维数组。 1.二级指针 指针变量也是变…

jmeter接口测试之使用rsa算法加密解密的代码

本篇介绍jmeter 使用rsa算法进行加密参数 如果测试过程中&#xff0c;部分接口采用了rsa加密算法&#xff0c;我们的jmeter 也是可以直接拿来调用的&#xff0c;不需要开发配合去掉加密代码&#xff01; 直接上代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2…

CentoOS 7部署Samba

文章目录 &#xff08;1&#xff09;Samba概述&#xff08;2&#xff09;安装Samba&#xff08;3&#xff09;启动和管理Samba服务&#xff08;4&#xff09;查看Samba进程&#xff08;5&#xff09;介绍Samba配置文件&#xff08;6&#xff09;修改Samba配置文件&#xff08;7…

车联网助力自动驾驶发展

单车智能决策难点 芯片&#xff0c;成为自动驾驶的最大瓶颈 自动驾驶对芯片算力要求极高。要求自动驾驶处理器在每秒能够处理数百万亿次的计算&#xff1b; 自动驾驶对计算的实时性要求极高。任何一点时延&#xff0c;都有可能造成车毁人亡&#xff1b; 对低能耗有极大的…

气象监测设备的内容介绍

气象监测设备是基于无线通讯、物联网感知等技术而研发的多功能智能气象设备&#xff0c;用于监测二氧化碳、气压、雨量、风速、风向、光照度、空气温湿度、土壤温湿度、PM2.5/PM10等气象参数&#xff0c;通过无线通讯方式将数据传输到环境监控云平台上&#xff0c;以便相关人员…

2023快速上手新红利项目:短剧分销推广CPS

短剧分销推广CPS是一个新红利项目&#xff0c;对于新手小白来说也可以快速上手。 以下是一些建议&#xff0c;帮助新手小白更好地进行短剧分销推广CPS&#xff1a; 学习基础知识&#xff1a;了解短剧的基本概念、制作流程和推广方式。了解短剧的市场需求和受众群体&#xff0c…

【git教程】

目录 git与SVN的区别&#xff1a;集中式与分布式的区别Windows上安装Git创建版本库/仓库&#xff08;repository&#xff09;将文件添加到repository报错处理 查看仓库的状态版本回退工作区和暂存区管理和修改撤销修改删除文件远程仓库添加远程仓库警告解除本地和远程的绑定关系…

Windows环境提示“‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处文理件” 简易记录

在Windows环境下使用DOS命令窗登入MYSQL&#xff0c;提示“mysql 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。” 这意味着系统无法找到 mysql.exe可执行文件&#xff0c;这是因为 MySQL 没有正确安装或未添加到系统PATH环境变量中所致。 处理方法&#x…

蝴蝶Butterfly 数据集VOC+yolo-2000张(labelImg标注)

蝴蝶被誉为“会飞的花朵”&#xff0c;是一类非常美丽的昆虫。蝴蝶大多数体型属于中型至大型&#xff0c;翅展在15~260毫米之间&#xff0c;有2对膜质的翅。体躯长圆柱形&#xff0c;分为头、胸、腹三部分。体及翅膜上覆有鳞片及毛&#xff0c;形成各种色彩斑纹。今天要介绍的是…

GitHub Copilot - Elasticsearch 和 MySQL 单表查询耗时比对

当单表数据库超过百万后&#xff0c;数据库 like %xxx% 查询明显变慢&#xff0c;为了对比 Elasticsearch 的效果&#xff0c;将百万级的测试数据导入到 Elasticsearch 中对比看看效果。导入和查询 Elasticsearch 的过程完全通过 GitHub Copilot Chat 辅助编码。 Elasticsearc…

智能客服的应用——政务领域

#本文来源清华大学数据治理研究中心政务热线数智化发展报告 &#xff0c;如有侵权&#xff0c;请联系删除。 面对地方政务热线发展所面临的挑战&#xff0c;数智化转型已经成为了热线系统突破当前发展瓶颈、实现整体提质增效的关键手段。《意见》中也明确指出&#xff0c;政务…