vue3 echarts 各省地图展示

news2024/11/23 7:12:51

效果:

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);
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目经理和产品经理该如何选择?

最近很多人咨询“项目经理跟产品经理该怎么选&#xff0c;我更适合哪个&#xff1f;”“项目经理跟产品经理哪个更有钱途 ”“项目经理转产品经理好转吗”等等&#xff0c;今天就一次性说清楚项目经理跟产品经理有什么区别&#xff0c;应该怎么选择。 不想看长篇大论的&#x…

处理货物数据

主题 对xlsx文件进行清洗 第一步 将g2到y2的标题复制到g4和y4 安装操作库 pip install openpyxl下载失败&#xff0c;更换为阿里源 pip install library -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com下载仍然失败 再次换源 pip instal…

最新鸿蒙HarmonyOS4.0开发登陆的界面2

登陆功能 代码如下&#xff1a; import router from ohos.router; Entry Component struct Index {State message: string XXAPP登陆State userName: string ;State password: string ;build() {Row() {Column({space:50}) {Image($r(app.media.icon)).width(200).interpol…

《使用ThinkPHP6开发项目》 - 登录接口一

《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架-CSDN博客 《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客 《使用ThinkPHP6开发项目》 - 项目使用多应用开发-CSDN博客 《使用ThinkPHP6开发项目》 - 创建应用-CSDN博客 《使用ThinkPHP6开发项目》 - 创建控制器-CSD…

php 使用box打包

1.安装box 2.检查是否安装成功 3.查看路径&#xff0c;把路径添加到环境变量&#xff0c;方便使用 4.php项目根目录增加box.json配置文件 5.运行命令生成。这个是在cmd中运行的&#xff0c;记得切换到php源码目录 6.使用 php FastAdmin.phar运行。 说明&#xff1a;如果是常驻…

智能优化算法应用:基于布谷鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于布谷鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于布谷鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.布谷鸟算法4.实验参数设定5.算法结果6.参考文…

lwIP 细节之三:errf 回调函数是何时调用的

使用 lwIP 协议栈进行 TCP 裸机编程&#xff0c;其本质就是编写协议栈指定的各种回调函数。将你的应用逻辑封装成函数&#xff0c;注册到协议栈&#xff0c;在适当的时候&#xff0c;由协议栈自动调用&#xff0c;所以称为回调。 注&#xff1a;除非特别说明&#xff0c;以下内…

智选假日酒店大中华区迎来开业、在建500家里程碑

“90后”先锋品牌&#xff0c;智选假日酒店在华实现骄人突破&#xff0c;成就非凡 2023年12月12日&#xff0c;中国上海 — 洲际酒店集团今日宣布&#xff0c;旗下中高端精选服务品牌智选假日酒店迎来大中华区的开业和在建酒店数量突破500家这一发展里程碑。智选假日酒店凭借其…

如何利用供应商细分,更好管理供应商关系?

对于一些企业来说&#xff0c;与供应商关系密切&#xff0c;是避免过去几年供应链短缺、延误和价格上涨的关键。但对大多数企业来说&#xff0c;同等关注每个供应商是不可能的&#xff0c;而且成本高昂。 在这种情况下&#xff0c;企业可以使用供应商细分作为确定参与水平的策…

C语言实现在顺序表中找到最大值

用C语言实现在顺序表中找到最大值&#xff1a; #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…

mockjs 导致cesium地图无法加载

1.报错信息 Uncaught (in promise) TypeError: Failed to execute createImageBitmap on Window: The provided value is not of type (Blob or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or ImageData or OffscreenCanvas or SVGImageElemen…

Linux高级管理--安装MySQL数据库系统

MySQL服务基础 MySQL.是一个真正的多线程、多用户的SQL数据库服务&#xff0c;凭借其高性能、高可靠和易于使 用的特性&#xff0c;成为服务器领域中最受欢迎的开源数据库系统。在2008年以前&#xff0c;MySOL项目由MySQL AB公司进行开发&#xff0c;发布和支持&#xff0c;之后…

基于JAVA的汽车售票网站论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对汽车售票信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

串行计时芯片D1380/D1381,2.0V~5.5V 工作电流: 2V时 与TTL 兼容,采用DIP8、SOP8封装

D1380/D1381是一个带秒、分、时、日、日期、月、年的串行时钟保持芯片,每个月多少天以及闰年能自动调节, D1380/D1381低功耗工作方式, D1380/D1381用若干寄存器存储对应信息&#xff0c;一个32.768kHz 的晶振校准时钟&#xff0c;为了使用最小弓|脚&#xff0c;D1380/D1381使用…

jsp+servlet+图书交流平台 有filter过滤器

在线图书推荐与交流平台 随着数字化的进展和人们对持续学习的追求&#xff0c;在线资源变得越来越受欢迎。对于众多读者来说&#xff0c;找到合适的书籍和与其他读者交流阅读体验是非常有价值的。为了满足这一需求&#xff0c;我们提出了一个在线图书推荐与交流平台的设计。此…

这两个管理方法 在现货白银顺势交易中会用得上

我们常说&#xff0c;在现货白银交易中做顺势交易&#xff0c;那盈利的概率会高一些。但是这并不是说做顺势交易就肯定盈利&#xff0c;其实顺势交易也需要投资者去进行管理的&#xff0c;不要以为顺势交易入场之后就万事大吉了。那投资者该如何管理呢&#xff1f;下面我们就来…

H5开发App应用程序的常见问题以及解决方案

Hello大家好&#xff0c;我是咕噜铁蛋&#xff0c;天冷记得添衣&#xff0c;ok话说回来H5开发成为了一种流行的方式来构建跨平台的移动应用程序。然而&#xff0c;在H5开发App应用程序的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;这些问题可能涉及性能、兼容性、用…

Editing Existing PDF Files in Java

Editing Existing PDF Files in Java 1. Overview In this article, we’ll see how to edit the content of an existing PDF file in Java. First, we’ll just add new content. Then, we’ll focus on removing or replacing some pre-existing content. 2. Adding the …

基于Java SSM框架实现大学生校园兼职系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现大学生兼职系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;大学生校园兼职系统当然也不能排除在外。大学生校园兼职系统是以实际运用为开…

低压无功补偿在分布式光伏现场中的应用

摘要&#xff1a;分布式光伏电站由于建设时间短、技术成熟、收益明显而发展迅速&#xff0c;但光伏并网引起用户功率因数异常的问题也逐渐凸显。针对分布式光伏电站接入配电网后功率因数降低的问题&#xff0c;本文分析了低压无功补偿装置补偿失效的原因&#xff0c;并提出了一…