深入解析:vue3 实现echarts 3D 地图

news/2025/12/1 10:23:14/文章来源:https://www.cnblogs.com/ljbguanli/p/19291749

深入解析:vue3 实现echarts 3D 地图

目录

一、环境准备

1. 安装依赖

2. 准备地图数据

二、Vue3 组件实现

1. 基础组件结构

2. 地图数据请求方法

三、关键配置说明

四、常见问题解决


在 Vue3 中实现 ECharts 3D 地图,核心是结合echartsecharts-gl(ECharts 的 3D 扩展库),通过注册地图数据、配置 3D 视角和样式来实现。以下是详细步骤和代码示例:

一、环境准备

1. 安装依赖

需要安装echarts(核心库)和echarts-gl(3D 支持库):

npm install echarts echarts-gl --save
# 或 yarn
yarn add echarts echarts-gl
2. 准备地图数据

ECharts 3D 地图需要基于GeoJSON 格式的地图数据(如国家、省份、城市的边界坐标)。

  • 数据来源:可从 ECharts 官方地图数据 或 阿里云 DataV 地图选择器 下载(需注意数据版权)。
  • 示例:本文以 “中国地图” 为例,假设已下载china.json(GeoJSON 格式),并放在public/map/目录下。

二、Vue3 组件实现

1. 基础组件结构

创建一个ECharts3DMap.vue组件,包含地图容器、初始化逻辑和 3D 配置:


<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
import * as echarts from 'echarts'
import 'echarts-gl' // 引入3D支持
import { getMapData } from './mapData' // 封装的地图数据请求方法
// 地图容器DOM
const mapRef = ref(null)
// ECharts实例
let chartInstance = null
// 初始化地图
const initMap = async () => {// 1. 获取地图GeoJSON数据(从public目录加载)const mapGeoJson = await getMapData()// 2. 初始化ECharts实例chartInstance = echarts.init(mapRef.value)// 3. 注册地图数据(mapName需与后续配置中的geo3D.map一致)echarts.registerMap('china', mapGeoJson)// 4. 配置3D地图参数const option = {// 3D地图核心配置geo3D: {map: 'china', // 对应注册的地图名称roam: true, // 允许鼠标缩放、平移altitude: 50, // 地图高度(3D效果强度)// 视角配置(相机位置)viewControl: {distance: 120, // 相机与地图的距离(数值越小越近)alpha: 30, // 仰角(0-90度,越大越俯视)beta: 40, // 方位角(0-360度,控制旋转)projection: 'perspective' // 透视投影(3D效果更真实)},// 地图表面样式itemStyle: {color: '#0066CC', // 基础颜色borderColor: '#fff', // 边界颜色borderWidth: 1 // 边界宽度},// 高亮样式(鼠标hover时)emphasis: {itemStyle: {color: '#FF6600' // 高亮颜色},label: {show: true, // 显示省份名称color: '#fff', // 文字颜色fontSize: 12}},// 光照配置(增强3D立体感)light: {main: {intensity: 1.2, // 主光源强度shadow: true, // 开启阴影shadowQuality: 'high', // 阴影质量direction: [10, 20, 30] // 光源方向(x,y,z轴)},ambient: {intensity: 0.5 // 环境光强度}}},// 可选:添加数据点(如城市标记)series: [{type: 'scatter3D', // 3D散点图coordinateSystem: 'geo3D', // 关联3D地图坐标系data: [{ name: '北京', value: [116.4074, 39.9042, 100] }, // [经度, 纬度, 高度]{ name: '上海', value: [121.4737, 31.2304, 80] },{ name: '广州', value: [113.2644, 23.1291, 60] }],symbolSize: 10, // 点大小itemStyle: {color: '#FF0000' // 点颜色},label: {show: true, // 显示点名称formatter: params => params.name}}]}// 5. 设置配置项渲染地图chartInstance.setOption(option)
}
// 监听窗口大小,自适应地图
const handleResize = () => {chartInstance?.resize()
}
// 组件挂载时初始化
onMounted(() => {initMap()window.addEventListener('resize', handleResize)
})
// 组件卸载时销毁实例
onUnmounted(() => {window.removeEventListener('resize', handleResize)chartInstance?.dispose()
})
</script>
2. 地图数据请求方法

创建mapData.js封装地图数据请求(从 public 目录加载本地 GeoJSON):

// mapData.js
export const getMapData = async () => {const response = await fetch('/map/china.json') // public/map/china.jsonif (!response.ok) {throw new Error('地图数据加载失败')}return response.json()
}

三、关键配置说明

  1. geo3D 核心属性

    • map:关联已注册的地图名称(需与registerMap的第一个参数一致)。
    • roam:开启后支持鼠标拖拽(平移)、滚轮(缩放)、右键旋转。
    • viewControl:控制 3D 视角,distance越小越贴近地图,alpha控制俯视角度,beta控制旋转方向。
    • light:通过光源设置增强 3D 立体感,main为主光源,ambient为环境光。
  2. 数据可视化扩展

    • 可通过series添加 3D 散点图(scatter3D)、热力图(heatmap3D)等,关联geo3D坐标系实现数据叠加。
    • 如需显示省份 / 城市名称,在geo3D.emphasis.label.show中开启,或通过series.label自定义。
  3. 响应式处理

    • 监听窗口 resize 事件,调用chartInstance.resize()实现地图自适应。
    • 若地图数据需动态更新,修改option后重新调用setOption(option)即可。

四、常见问题解决

  1. 地图不显示

    • 检查容器是否设置宽高(必须非 0)。
    • 确认地图数据路径正确(public 目录下的文件需用绝对路径/map/xxx.json)。
    • 检查echarts-gl是否正确引入(未引入会导致geo3D无效)。
  2. 3D 效果不明显

    • 调整geo3D.altitude(增大高度)、viewControl.distance(减小距离)、light光源参数增强立体感。
  3. 地图数据错误

    • 确保 GeoJSON 格式正确(可通过 GeoJSON 验证工具 检查)。
    • 若需展示省级 / 市级地图,替换对应 GeoJSON 数据(如jiangsu.json),并修改registerMap的名称。

注意:如果报错可能是版本问题,echarts和echarts-gl能实现3D 且匹配的版本为:

"echarts":"^5.2.0"
"echarts-gl":"^2.0.8"

安装指定版本,匹配的是:

npm install echarts5.2.0 --save
npm install echarts-gl@2.0.8 --save

通过以上步骤,即可在 Vue3 中实现具有 3D 效果的交互式地图,可根据需求进一步优化样式和数据展示。

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

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

相关文章

2025年克拉玛依壁挂炉公司权威推荐榜单:威能壁挂炉/万家乐壁挂炉/天然气壁挂炉源头服务商精选

在冬季严寒的克拉玛依,壁挂炉作为家庭和商业场所供暖系统的核心设备,其性能与服务质量直接关系到用户的温暖过冬体验。随着本地居民对供暖品质要求的提升,专业壁挂炉服务商的技术水平与服务质量已成为用户选择的关键…

keil相关之:hex --- bin --- hex --- Download

1. 前言 前面说了怎样只生成 hex和为什么只要 hex,现在说一下具体的 keil 工程设置来使用生成的 hex。主要分为以下几步:hex(axf) ---> bin; bin + bin; bin ---> hex。我的试验环境: 操作系统:Win10 64bit…

看完《疯狂动物城》心痒痒?试试ComfyUI,让朱迪和尼克走进你的画布

看完《疯狂动物城》心痒痒?试试ComfyUI,让朱迪和尼克走进你的画布 最近,《疯狂动物城》再度以超高热度回归大众视野。 大银幕上朱迪的勇敢坚定、尼克的幽默机敏,还有那座让人无限着迷的动物乌托邦,当片尾曲响起,…

2025年靠谱的工业除尘布袋/玄武岩除尘布袋热门厂家推荐榜单

2025年靠谱的工业除尘布袋/玄武岩除尘布袋热门厂家推荐榜单工业除尘布袋市场现状与趋势随着全球环保法规日益严格和工业企业对清洁生产要求的不断提高,工业除尘布袋作为大气污染治理的核心部件,市场需求持续增长。据…

2025年知名的楼梯栏杆/阳台栏杆用户好评厂家排行

2025年知名的楼梯栏杆/阳台栏杆用户好评厂家排行行业背景与市场趋势随着城市化进程的加快和人们对居住环境安全性与美观性要求的提升,楼梯栏杆和阳台栏杆作为建筑安全防护的重要组成部分,市场需求持续增长。据行业报…

2025年比较好的防腐耐磨涂层/渣浆泵耐磨涂层厂家最新热销排行

2025年比较好的防腐耐磨涂层/渣浆泵耐磨涂层厂家热销排行 行业背景与市场趋势 随着工业设备向高效化、长寿命方向发展,防腐耐磨涂层的市场需求持续增长。在矿山、冶金、电力、化工等领域,渣浆泵、管道、反应釜等设…

Java 的文件编程和网络编程

目录Java 的文件编程和网络编程相同点1. 统一的I/O抽象模型2. 相似的基础API使用3. 相同的数据处理方式4. 相同的资源管理原则不同点1. 操作对象不同2. 核心类不同3. 连接建立方式不同4. 编程复杂度和关注点不同5. 异常…

2025成都小程序开发企业推荐排行榜:实力与口碑兼具

在2025年,小程序开发市场竞争日趋激烈,选择一家技术实力与口碑兼具的开发企业至关重要。推来客网络作为一家综合实力领先的开发服务商,凭借 优秀的技术能力、完善的服务保障和广泛的行业适配能力,在排行榜中名列前…

深入解析:Go语言设计模式:解释器模式详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

小程序开发公司推荐专业诚信企业推来客网络

推来客网络致力于帮助企业实现数字化转型,提升业务效率与用户体验。如果您正在寻找一家兼具专业与诚信的小程序开发公司,推来客网络是值得信赖的选择。在2025年,数字化竞争日益激烈,小程序已经成为企业业务拓展与服…

【2025-11-29】连续摘抄

23:59无论你的家庭有多么糟糕,请记住它最多限制你的起点,而不是你的终点。——戴尔卡耐基我认为一些传统媒体能凤凰涅槃。你就要退休了,媒体能有复兴,你也是事外人。收入的下降,要实实在在承受。没办法,时代的变…

2025年铝合金车棚厂家权威推荐榜单:家用铝合金遮阳棚/阳台铝合金雨棚/别墅铝合金遮阳棚源头厂家精选

在当代建筑与家居环境优化领域,铝合金车棚以其卓越的耐久性、美观性与功能性,正成为户外空间建设的重要选择。本文将基于企业资质、材料工艺、服务体系与市场口碑等多维度数据,为您呈现2025年铝合金车棚行业的权威推…

2025年靠谱的科技馆展厅设计/数字展厅体验口碑榜

2025年靠谱的科技馆展厅设计/数字展厅体验口碑榜行业背景与市场趋势随着数字技术的迅猛发展和公众对互动体验需求的不断提升,科技馆展厅设计和数字体验领域正经历着前所未有的变革。2025年,这一行业已从传统的静态展…

诚信的小程序开发企业推荐:推来客网络的技术实力与交付保障

推来客网络在小程序开发领域凭借其出色的技术实力与交付保障赢得了行业和客户的认可。其客户中,中大型企业占比达 45%,中小微企业占比 55%,证明了其服务能力覆盖不同规模企业的需求。根据中国信通院发布的《2025企业…

体操竞技展风采 球类赛事竞风流

2025-11-30 14:00:00 体操竞技展风采 球类赛事竞风流|@wWw.KepRiNtInG.cOm@||@m.KepRiNtInG.cOm@||@wWw.ImEiLaObAn.cOm@||@m.ImEiLaObAn.cOm@||@m.GaNsHiChUcHeNqi.cOm@||@m.YaNhUiYuAn.cOm@||@wWw.CyJyJt.cN@||@m.Cy…

2025年度全国FSD热泵品牌制造商排行榜,先进生产企业及值

为帮助工业企业高效锁定适配自身余热回收与节能需求的FSD热泵合作伙伴,避免选型时因技术参数模糊、场景适配性不足踩坑,我们从核心技术专利储备(如热能回收工艺、低温运行稳定性)、生产制造标准(含核心部件供应链…

2025年10kv绝缘胶板生产厂家权威推荐榜单:防静电地胶板‌/防静电绝缘胶垫‌/防静电胶板‌源头厂家精选

在电力行业,安全是永恒的生命线。10kv绝缘胶板作为保障配电室、变电站等场所作业人员安全的重要防线,其品质直接关系到重大人身设备事故的发生与否。 随着电网升级改造的持续推进,2024年中国电网工程完成投资已超过…

2025年靠谱的中控脚轮/冰箱脚轮厂家推荐及选择指南

2025年靠谱的中控脚轮/冰箱脚轮厂家推荐及选择指南行业背景与市场趋势随着全球制造业的持续发展和物流行业的不断升级,脚轮作为各类设备移动的基础部件,其市场需求呈现稳定增长态势。根据市场研究数据显示,2023年全…

2025年知名的泥浆压滤机/压滤机厂家实力及用户口碑排行榜

2025年知名的泥浆压滤机/压滤机厂家实力及用户口碑排行榜行业背景与市场趋势随着环保政策的日益严格和工业生产的持续发展,泥浆压滤机作为固液分离的关键设备,在各行各业的应用越来越广泛。2025年,全球压滤机市场规…

2025年热门的家具脚轮优质厂家推荐榜单

2025年热门的家具脚轮优质厂家推荐榜单行业背景与市场趋势随着全球家具行业的持续发展,家具脚轮作为功能性配件的重要性日益凸显。2025年,家具脚轮市场预计将达到85亿美元规模,年增长率稳定在5.3%左右。这一增长主要…