# vue3 使用 echarts 展示某省份各区市数据

vue3 使用 echarts 展示某省份各区市数据

这个很简单,直接贴代码了

代码

echarts 使用的是最新版:"echarts": "^6.0.0"

js 复制代码
<template>
  <div class="ed-map-div">
    <div class="ed-map-model" ref="echartRef"></div>
  </div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import * as echarts from 'echarts'

const echartRef = ref(null)
const actBtn = ref(0)

let echartInstance = null;

let option = {
  backgroundColor: 'transparent',
  tooltip: {
    trigger: 'item',
    formatter: '{b}: {c}'
  },
  // 添加视觉映射组件,用于展示数据
  visualMap: {
    min: 0,
    max: 700,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'],
    calculable: true,
    inRange: {
      color: ['#e0f3ff', '#0066cc']
    }
  },
  series: [{
    type: 'map',
    map: '辽宁',
    roam: true,
    label: {
      show: true,
      color: '#FFF',
      fontSize: 14,
      fontWeight: 'bold',
      fontFamily: '微软雅黑'
    },
    emphasis: {
      label: {
        show: true,
        fontSize: 14,
        color: '#FFF',
        fontWeight: 'bold'
      },
      itemStyle: {
        areaColor: '#ffcc00'
      }
    },
    data: [
      {
        value: 650,
        name: '沈阳市',
      },
      {
        value: 450,
        name: '大连市',
      },
      {
        value: 420,
        name: '鞍山市',
      },
      {
        value: 400,
        name: '抚顺市',
      },
      {
        value: 500,
        name: '本溪市',
      },
      {
        value: 600,
        name: '丹东市',
      },
      {
        value: 700,
        name: '铁岭市',
      },
      {
        value: 700,
        name: '阜新市',
      },
      {
        value: 700,
        name: '锦州市',
      },
      {
        value: 700,
        name: '朝阳市',
      },
      {
        value: 700,
        name: '盘锦市',
      },
      {
        value: 700,
        name: '葫芦岛市',
      },
      {
        value: 700,
        name: '营口市',
      },
      {
        value: 700,
        name: '辽阳市',
      },
    ]
  }]
}

onMounted(() => {
  echartInstance = echarts.init(echartRef.value)

  // 正确的地图数据加载方式
  import('../../json/210000.json').then(mapJson => {
    // 直接使用 JSON 数据注册地图
    echarts.registerMap('辽宁', mapJson)

    // 配置 ECharts 选项
    echartInstance.setOption(option)
  }).catch(error => {
    console.error('加载地图数据失败:', error)
  })

  // 添加窗口大小变化监听
  window.addEventListener('resize', () => {
    echartInstance.resize()
  })
})


</script>
<style scoped lang="scss">
.ed-map-div {
  width: 100%;
  height: 100%;
  position: relative;

  .ed-map-model {
    width: 100%;
    height: 100%;
  }
}
</style>

其中省份的 json 文件从这个网站可以下载:datav.aliyun.com/portal/scho...

最后完成的效果:

相关推荐
闲云一鹤12 分钟前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
QCY37 分钟前
「完全理解」1 分钟实现自己的 Coding Agent
前端·agent·claude
一拳不是超人1 小时前
Electron主窗口弹框被WebContentView遮挡?独立WebContentView弹框方案详解!
前端·javascript·electron
anyup1 小时前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
雮尘2 小时前
如何在非 Claude IDE (TARE、 Cursor、Antigravity 等)下使用 Agent Skills
前端·agent·ai编程
icebreaker2 小时前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker2 小时前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
wuhen_n2 小时前
代码生成:从AST到render函数
前端·javascript·vue.js
喝咖啡的女孩2 小时前
浏览器前端指南
前端
wuhen_n2 小时前
AST转换:静态提升与补丁标志
前端·javascript·vue.js