【eCharts】Echarts中国地图绘制案例

【eCharts】Echarts中国地图绘制案例Echarts 绘制中国地图案例推荐下载的中国地图 json 文件里面的地区名字是全称 那么在使用的过程中需要确保 json 文件中的省 市 县的名字和 series 中 data 中的省 市 县的名字一摸一样 否则数据无法显示出来 如果后端给的数据中地区名字和下载的 json 文件中地区名字不一致 可以自己手动去修改 json 文件中的地区名字或者是和后端人员商量修改后端的数据

【eCharts】eCharts中国地图绘制案例



eCharts中国地图绘制案例

在使用的时候需要注意:

推荐下载的中国地图json文件里面的地区名字是全称,那么在使用的过程中需要确保json文件中的省、市、县的名字和series中data中的省、市、县的名字一摸一样。否则数据无法显示出来,如果后端给的数据中地区名字和下载的json文件中地区名字不一致,可以自己手动去修改json文件中的地区名字或者是和后端人员商量修改后端的数据.(切记!!! 切记!!! 切记!!!)

下面是我做出来的效果图:

在这里插入图片描述

下面展示的代码是已经从项目中整理出来的代码,大家可以直接拿去使用,使用的时候记得下载相关的包,即可放心食用

<template> <div class="mapContain"> <!-- 中国地图 --> <div class="chinaMap"> <div class="swiper-Map" ref="swiperMap"> <div class="newConfirm" id="newConfirm-Map"></div> <div class="totalConfirm" id="totalConfirm-Map"></div> </div> </div> <!-- 切换地图按钮 --> <div class="shiftMap"> <div :class="shiftType.type == 'left' ? 'active' : ''" @click="changeMap('left')">现有确诊</div> <div :class="shiftType.type == 'right' ? 'active' : ''" @click="changeMap('right')">累计确诊</div> </div> </div> </template> <script lang="ts"> import { 
      defineComponent, onMounted, reactive, ref } from "vue"; import * as echarts from "echarts"; import request from "../src/util/request"; import chinaJson from "./assets/chinaMap.json" export default defineComponent({ 
      setup(props, context) { 
      // 导入echarts中的类型用来限定setoption type EChartsOption = echarts.EChartsOption; // 在页面挂载后展示 onMounted(() => { 
      initMap() }); // 初始化地图 const initMap = async()=>{ 
      let res = await request({ 
      url:'/list-total', method:'GET' }) let china = res.data.areaTree.find((item:any)=>item.id === '0') // 现有确诊的数据 let areaArr = china.children.map((item:any)=>{ 
      return { 
      name:item.name, value:item.total.confirm - item.total.dead-item.total.heal || 0 } }) // 累计确诊的数据 let areaAllArr = china.children.map((item:any)=>{ 
      return{ 
      name:item.name, value:item.total.confirm } }) // 获取节点,初始化echarts let Map1 = echarts.init(document.getElementById("newConfirm-Map") as HTMLElement); let Map2 = echarts.init(document.getElementById("totalConfirm-Map") as HTMLElement); Map1.showLoading() Map2.showLoading() // 注册地图 echarts.registerMap("china", chinaJson as any); // 书写配置项 let optionMap: EChartsOption = { 
      // 标题 title: { 
      text: "中国疫情图", textStyle: { 
      color: "#", fontSize: 22, }, subtext: "单击省份可查看病例数", subtextStyle: { 
      color: "#9B9B9B", fontSize: 16, }, top: 25, left: 30, }, // 视觉映射组件 visualMap: { 
      type:'piecewise', showLabel:true, pieces:[ { 
     gte: 10000,label:'> 10000人'}, // (1500, Infinity] { 
     gte: 1000, lte: 9999, label:'1000 - 9999人'}, // (900, 1500] { 
     gte: 500, lte: 999, label:'500 - 999人'}, // (310, 1000] { 
     gte: 100, lte: 499,label:'100 - 499人'}, // (200, 300] { 
     gte: 10, lte: 99,label:'10 - 99人'}, // (200, 300] { 
     gte: 1, lte: 9,label:'1 - 9人'}, // (200, 300] { 
     lte: 0,label:'0'}, // (200, 300] ], min: 0, max: 10000, realtime: false, calculable: true, inRange: { 
      color: ['white','#FFF2CF', '#FDD2A0', '#FF8C71', '#E64B45', '#7F1100'] }, left:30, bottom:35, text: ["高", "低"], //取值范围的文字 textStyle: { 
      color: "#333", } }, // 提示框组件 tooltip:{ 
      trigger:'item', /* 折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无) 散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无) 地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无) 饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比) */ formatter:'现有确诊病例 {b} : {c}' }, // 地理坐标系组件 geo:{ 
      map:'china', roam:false, zoom:1.3, top:150, label:{ 
      show:true, position:['50%', '50%'], color:'#333', fontSize:12, }, // 地区的配置 itemStyle:{ 
      areaColor:"#fff", borderColor:'#DCDCDC' }, // 高亮配置 emphasis:{ 
      itemStyle:{ 
      areaColor:'#45CFFF', borderColor:'#45CFFF' } } } }; Map1.setOption({ 
      ...optionMap, series: { 
      name:'中国疫情图', type:'map', geoIndex:0, data:areaArr } }); Map2.setOption({ 
      ...optionMap, series: { 
      name:'中国疫情图', type:'map', geoIndex:0, colorBy:'series', data:areaAllArr } }); Map1.hideLoading() Map2.hideLoading() } // 获取容器节点 const swiperMap:any = ref() let shiftType = reactive({ 
      type:'left', titleType:0 }) // 切换图片回调函数 const changeMap = (type:string)=>{ 
      if(type === shiftType.type) return if(type === 'left'){ 
      swiperMap.value.classList.remove('move') }else{ 
      swiperMap.value.classList.add('move') } shiftType.type = type } return { 
      changeMap, swiperMap, shiftType }; }, }); </script> <style scoped lang='less'> .mapContain { 
      width: 750px; margin: 0 auto; } // 中国地图 .chinaMap { 
      box-sizing: border-box; width: 750px; overflow: hidden; .swiper-Map { 
      display: flex; width: 1500px; transition: all 0.5s; .newConfirm,.totalConfirm { 
      margin:0 30px; width: 684px; height: 718px; background: #F3F3F3; border: 1px solid #dddddd; } &.move{ 
      transform: translateX(-750px); } } } // 切换地图 .shiftMap{ 
      margin-top: 20px; padding: 0 30px; box-sizing: border-box; display: flex; justify-content: space-between; div{ 
      width: 335px; line-height: 90px; font-size: 24px; color: #333; border: 1px solid #D2D2D2; box-shadow: 0 5px 10px 2px #F3F3F3; border-radius: 5px; text-align: center; &.active{ 
      background: #FEF7F7; border:1px solid #CE4733; color: #CE2C1E; } } } </style> 

总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178540.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:03
下一篇 2026年3月26日 下午5:04


相关推荐

  • 马赫带现象

    马赫带现象马赫带现象摘要马赫带是视觉系统的侧抑制作用引起的 当一个视觉感受器受到刺激的时候 由此产生的神经冲动将对邻近部位细胞输入的信号产生抑制性影响 在明暗交界的地方 亮区一侧的抑制作用大于暗区的抑制作用 从而产生暗区更暗 亮区更亮的马赫带现象 目录 1 名称 2 介绍 3 马赫带 4 马赫带演示实验马赫带现象

    2026年3月16日
    2
  • 【零基础】MT4量化入门一:跑一个简单的boll

    【零基础】MT4量化入门一:跑一个简单的boll一、前言  今天开始研究MT4了,MT4是大大有名的外汇交易和量化软件,使用一种叫做MQL的语言来开发量化程序(跟C比较像)。因为是外国人做的,用的也大部分是外国人,使用起来不是很顺手,跟极星各有优劣吧。这里我就先逐步讲一下MT4的使用,然后再简单跑一个boll指标,最后汇总下使用心得。二、安装  1、下载MT4  不熟悉这东西,连安装都是个麻烦事儿。MT4官网好找一搜就有,下载链…

    2022年5月23日
    52
  • Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面

    Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面效果图:自定义对话框布局:<?xmlversion=”1.0″encoding=”utf-8″?><LinearLayoutxmlns:android=”http://schemas.android.com/apk/res/android”android:layout_width=”350dp”android:layout_height=”wrap_content”andro

    2022年6月21日
    23
  • torch mseloss_pytorch conv1d

    torch mseloss_pytorch conv1dMSELOSSCLASStorch.nn.MSELoss(size_average=None,reduce=None,reduction:str=’mean’)创建一个标准来测量输入x和目标y中每个元素之间的均方误差(L2范数平方)。未减少的损失(即reduction设置为’none’)可以描述为:其中N是batchsize.如果reduction不是’none'(默认为’mean’),那么:x和y是任意形状的张量,每个张量总共有n个元素…

    2026年1月19日
    4
  • SPSS 方差分析

    SPSS 方差分析统计学上的因素是指研究者关心的实验条件 而水平是指因素的具体表现形式 6 1 单因素方差分析 6 1 1 原理单因素方差分析仅研究了单个研究因素 该因素有多个水平 3 如果为 2 个水平就用 T 检验了 方差分析就是通过分析处理组均数之间的差别 推断试验所代表的多个总体均数间是否存在差别 其原理是将全部观察数据的变异 总变异 分解为组间变异和组内变异 如果组间的变异远远大于组内变异 则有理由认为本次研究的因素发挥着作用 1 总变异 每个实验对象数据与总体均数的差异 2 组间变异 各处理

    2026年3月26日
    2
  • OpenClaw × 飞书:保姆级接入指南

    OpenClaw × 飞书:保姆级接入指南

    2026年3月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号