Vue3 + ECharts 快速实现地图可视化

环境搭建与依赖安装

1、安装ECharts

在Vue项目根目录执行安装命令,推荐安装最新稳定版:

npm install echarts --save
# or
yarn add echarts

2、全局/局部引入

日常开发推荐局部引入,减小项目打包体积,性能更优。

3、下载GeoJson数据

打开全国完整版 GeoJson 地址地址,另存为china.json,存放在 /assets/map目录下


完整可运行代码

<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
import * as echarts from 'echarts'
// 引入地图数据
import china from '@/assets/map/china.json'
​
const mapRef = ref(null)
let myChart = null
​
// 模拟各省数据
const mapData = [
  { name: '北京市', value: 820 },
  { name: '上海市', value: 750 },
  { name: '广东省', value: 980 },
  { name: '浙江省', value: 680 },
  { name: '江苏省', value: 720 },
  { name: '四川省', value: 540 },
  { name: '山东省', value: 610 },
  { name: '河南省', value: 490 },
  { name: '湖北省', value: 520 },
]
​
onMounted(() => {
  // 注册地图
  echarts.registerMap('china', china)
​
  myChart = echarts.init(mapRef.value)
​
  /** @type {import('echarts').EChartsOption} */
  const option = {
    title: { text: '全国数据分布图', left: 'center' },
    tooltip: { trigger: 'item', formatter: '{b}<br/>数值:{c}' },
    visualMap: {
      min: 0,
      max: 1000,
      left: 20,
      bottom: 20,
      text: ['高', '低'],
      calculable: true,
    },
    series: [
      {
        name: '统计数据',
        type: 'map',
        map: 'china', // 和 registerMap 对应
        roam: true, // 可拖拽缩放
        label: { show: true, fontSize: 10 },
        layoutSize: '95%',
        zoom: 1.1,
        data: mapData,
      },
    ],
  }
​
  myChart.setOption(option)
​
  window.addEventListener('resize', () => myChart.resize())
})
​
onUnmounted(() => {
  window.removeEventListener('resize', () => myChart.resize())
  myChart?.dispose()
})
</script>
​
<template>
  <div ref="mapRef" style="width: 100%; height: 800px"></div>
</template>


Vue3 + ECharts 快速实现地图可视化
http://localhost:8090/archives/vue3-echarts-kuai-su-shi-xian-di-tu-ke-shi-hua
作者
Administrator
发布于
2025年07月09日
许可协议