当前位置: 首页 > news >正文

ECharts 地图开发入门

一、准备工作:环境搭建与数据准备​

1. 引入 ECharts 库​

TypeScript

取消自动换行复制

<!-- 引入 ECharts 核心库 -->​

<script src="https://cdn.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js"></script>​

<!-- 引入中国地图数据(按需引入其他地图) -->​

<script src="https://cdn.jsdelivr.net/npm/echarts@5.4.0/map/js/china.js"></script>​

2. 准备容器​

在 HTML 中创建一个用于显示地图的容器:​

TypeScript

取消自动换行复制

<div id="mapChart" style="width: 800px; height: 600px;"></div>​

二、绘制基础地图:3 步搞定​

1. 初始化 ECharts 实例​

TypeScript

取消自动换行复制

const chart = echarts.init(document.getElementById('mapChart'));​

2. 配置基础地图选项​

TypeScript

取消自动换行复制

const option = {​

title: { text: '中国地图基础示例', left: 'center' }, // 标题​

tooltip: {}, // 提示框(鼠标悬停显示数据)​

series: [​

{​

type: 'map', // 声明地图类型​

map: 'china', // 指定地图名称(需与引入的地图数据匹配)​

label: { show: true } // 显示省份名称​

}​

]​

};​

3. 渲染地图​

TypeScript

取消自动换行复制

chart.setOption(option);​

效果:显示带有省份名称的中国地图,鼠标悬停显示省份名称。​

三、数据可视化:让地图 “动” 起来​

1. 添加数据系列​

假设我们有各省份的数值数据(如人口、GDP),格式为 [{name: '省份', value: 数值}]:​

TypeScript

取消自动换行复制

const data = [​

{name: '北京', value: 2189},​

{name: '上海', value: 2487},​

{name: '广东', value: 12684},​

{name: '四川', value: 8367},​

// 其他省份数据...​

];​

2. 更新配置项​

在 series 中添加数据,并通过 visualMap 配置颜色映射:​

TypeScript

取消自动换行复制

const option = {​

// 其他配置...​

series: [​

{​

type: 'map',​

map: 'china',​

data: data, // 绑定数据​

itemStyle: { // 地图样式​

normal: { areaColor: '#e6f3ff' }, // 正常状态颜色​

emphasis: { areaColor: '#99ccff' } // 鼠标hover时颜色​

}​

}​

],​

visualMap: { // 颜色渐变条​

min: 0, // 数据最小值​

max: 15000, // 数据最大值​

range: ['#b3e0ff', '#409eff', '#0059b3'], // 颜色范围​

orient: 'horizontal', // 水平方向​

bottom: 10 // 位置在底部​

}​

};​

效果:地图根据数据显示不同颜色,颜色越深数值越高,底部显示颜色对应关系。​

四、交互优化:提升用户体验​

1. 自定义提示框(Tooltip)​

让提示框显示更详细的信息(如 “省份名称:数值”):​

TypeScript

取消自动换行复制

option.tooltip = {​

formatter: function(params) { // params 包含当前点击/悬停的省份数据​

return `${params.name}:${params.value} 万`;​

}​

};​

2. 添加点击事件​

实现点击省份时弹出提示:​

TypeScript

取消自动换行复制

chart.on('click', function(params) {​

alert(`${params.name} 的数值是:${params.value}`);​

});​

五、实战案例:疫情数据可视化​

完整代码示例​

TypeScript

取消自动换行复制

// 初始化图表​

const chart = echarts.init(document.getElementById('mapChart'));​

// 模拟疫情数据(确诊人数)​

const covidData = [​

{name: '湖北', value: 6812}, {name: '广东', value: 2305},​

{name: '河南', value: 1273}, {name: '浙江', value: 1244},​

// 其他省份数据...​

];​

// 配置项​

const option = {​

title: { text: '全国疫情确诊人数分布', left: 'center' },​

tooltip: { formatter: '{b}:{c} 例' }, // {b}省份名,{c}数值​

series: [{​

type: 'map',​

map: 'china',​

data: covidData,​

itemStyle: { emphasis: { label: { show: true } } } // 点击时显示名称​

}],​

visualMap: {​

max: 8000,​

range: ['#ffcccc', '#ff9999', '#ff6666'] // 红色系渐变​

}​

};​

// 渲染​

chart.setOption(option);​

效果:点击省份显示确诊数,颜色越红表示数值越高,底部颜色条直观展示数据范围。​

六、常见问题与解决方案​

问题​

解决方案​

地图不显示​

检查地图数据是否正确引入(如china.js),地图名称(map: 'china')是否匹配​

数据不生效​

确保数据格式为[{name: '省份', value: 数值}],且省份名称与地图内置名称一致(如 “宁夏” 而非 “宁夏回族自治区”)​

颜色不渐变​

检查visualMap的min/max是否覆盖数据范围,颜色数组长度至少为 2​

总结​

ECharts 地图开发只需掌握三个核心步骤:​

  1. 引入地图数据 → 2. 配置基础选项 → 3. 绑定数据与样式通过简单的代码组合,就能实现专业的数据可视化效果。建议初学者从官方地图示例入手,逐步尝试自定义样式和交互逻辑。​

如果需要进阶学习(如区县地图、3D 地图、动态数据更新),可以在 ECharts 官网查阅更详细的地图配置文档,或留言告诉我你的需求,后续会推出更多实战教程!​

相关文章:

  • HD Tune Pro v6.10 简体中文汉化单文件版
  • C++_数据结构_详解红黑树
  • Winform(1.Winform控件学习)
  • 每天学一个 Linux 命令(31):md5sum
  • Linux安全模块:SELinux与AppArmor深度解析
  • ✨ Apifox:这玩意儿是接口界的“瑞士军刀”吧![特殊字符][特殊字符]
  • XYNU2024信安杯-REVERSE(复现)
  • kafka与flume的整合、spark-streaming
  • 量子加密通信技术及其应用:构建无条件安全的通信网络
  • 【合新通信】浸没式液冷光模块与冷媒兼容性测试技术报告
  • 【滑动窗口+哈希表/数组记录】Leetcode 3. 无重复字符的最长子串
  • 搜索二叉树-key的搜索模型
  • nc工具!Netcat:TCP/IP瑞士军刀!全参数详细教程!Kali Linux教程!
  • prometheus通过Endpoints自定义grafana的dashboard模块
  • 时序数据库IoTDB在航空航天领域的解决方案
  • 对Mac文字双击或三击鼠标左键没有任何反应
  • Mac 「brew」快速安装MySQL
  • 河道流量监测,雷达流量计赋能水安全智慧守护
  • 4.26 世界知识产权日|CRMEB与您共筑知识产权保护铠甲
  • 【playwright】 page.wait_for_timeout() 和time.sleep()区别
  • 驻美国使馆发言人就美方希就关税问题与中方对话答记者问
  • 商务部:已有超1.2亿人次享受到以旧换新补贴优惠
  • 哈工大赵杰:人形机器人要拓展人的能力而非一味复制,未来产业要做成至少10年
  • 今年一季度上海离境退税商品销售额7.6亿元,同比增85%
  • 与包乐史驾帆航行|航海、钓鱼和写书:一个记者的再就业之路
  • 郑庆华任同济大学党委书记