ECharts是一个使用JavaScript实现的开源可视化库,它能够帮助开发者轻松地将数据通过图表的形式展示出来。其中,ECharts地图图表功能尤为强大,可以绘制出丰富的地理信息图表。本文将带你通过30个实战案例,轻松学会如何使用ECharts绘制全球地图。
一、ECharts地图图表简介
ECharts地图图表是基于GeoJSON格式的地图数据来绘制的。GeoJSON是一种用于描述地理空间数据的格式,它包含了地理空间实体的几何形状、属性信息以及空间参考信息。ECharts地图图表支持多种地图类型,包括世界地图、中国地图、省份地图等。
二、实战案例一:绘制世界地图
1. 准备地图数据
首先,我们需要准备一个世界地图的GeoJSON数据。可以通过在线API获取世界地图数据,例如:世界地图数据API。
2. 创建ECharts实例
var myChart = echarts.init(document.getElementById('main'));
3. 配置地图图表
var option = {
series: [{
type: 'map',
map: 'world',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
}
}]
};
4. 渲染地图图表
myChart.setOption(option);
三、实战案例二:绘制中国地图
1. 准备中国地图数据
与绘制世界地图类似,我们需要准备一个中国地图的GeoJSON数据。可以通过在线API获取中国地图数据,例如:中国地图数据API。
2. 创建ECharts实例
var myChart = echarts.init(document.getElementById('main'));
3. 配置地图图表
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
}
}]
};
4. 渲染地图图表
myChart.setOption(option);
四、实战案例三:绘制省份地图
1. 准备省份地图数据
与绘制中国地图类似,我们需要准备一个省份地图的GeoJSON数据。可以通过在线API获取省份地图数据,例如:省份地图数据API。
2. 创建ECharts实例
var myChart = echarts.init(document.getElementById('main'));
3. 配置地图图表
var option = {
series: [{
type: 'map',
map: 'province',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
}
}]
};
4. 渲染地图图表
myChart.setOption(option);
五、实战案例四:添加自定义标记
在地图上添加自定义标记,可以通过以下步骤实现:
1. 准备标记数据
标记数据可以是任意格式的,例如:JSON、XML等。以下是一个JSON格式的标记数据示例:
[
{
"name": "北京",
"value": [116.46, 39.92]
},
{
"name": "上海",
"value": [121.47, 31.23]
}
]
2. 配置地图图表
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92]
},
{
name: '上海',
value: [121.47, 31.23]
}
]
}]
};
3. 渲染地图图表
myChart.setOption(option);
六、实战案例五:添加数据标签
在地图上添加数据标签,可以通过以下步骤实现:
1. 准备数据标签数据
数据标签数据可以是任意格式的,例如:JSON、XML等。以下是一个JSON格式的数据标签数据示例:
[
{
"name": "北京",
"value": [116.46, 39.92],
"label": {
"normal": {
"show": true,
"formatter": "人口:{c}"
}
},
"itemStyle": {
"normal": {
"color": "#f4e925"
}
}
},
{
"name": "上海",
"value": [121.47, 31.23],
"label": {
"normal": {
"show": true,
"formatter": "人口:{c}"
}
},
"itemStyle": {
"normal": {
"color": "#f4e925"
}
}
}
]
2. 配置地图图表
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
]
}]
};
3. 渲染地图图表
myChart.setOption(option);
七、实战案例六:添加动画效果
在地图上添加动画效果,可以通过以下步骤实现:
1. 配置动画效果
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
animation: true
}]
};
2. 渲染地图图表
myChart.setOption(option);
八、实战案例七:添加交互效果
在地图上添加交互效果,可以通过以下步骤实现:
1. 配置交互效果
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
emphasis: {
itemStyle: {
areaColor: '#2a333d'
}
}
}]
};
2. 渲染地图图表
myChart.setOption(option);
九、实战案例八:添加地图缩放
在地图上添加缩放功能,可以通过以下步骤实现:
1. 配置地图缩放
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
zoom: 1.2
}]
};
2. 渲染地图图表
myChart.setOption(option);
十、实战案例九:添加地图旋转
在地图上添加旋转功能,可以通过以下步骤实现:
1. 配置地图旋转
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
rotation: 45
}]
};
2. 渲染地图图表
myChart.setOption(option);
十一、实战案例十:添加地图比例尺
在地图上添加比例尺,可以通过以下步骤实现:
1. 配置地图比例尺
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
}
}]
};
2. 渲染地图图表
myChart.setOption(option);
十二、实战案例十一:添加地图图例
在地图上添加图例,可以通过以下步骤实现:
1. 配置地图图例
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
legend: {
orient: 'vertical',
left: 'right',
data: ['北京', '上海']
}
}]
};
2. 渲染地图图表
myChart.setOption(option);
十三、实战案例十二:添加地图背景
在地图上添加背景,可以通过以下步骤实现:
1. 配置地图背景
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
background: {
type: 'image',
image: 'https://example.com/background.jpg'
}
}]
};
2. 渲染地图图表
myChart.setOption(option);
十四、实战案例十三:添加地图边框
在地图上添加边框,可以通过以下步骤实现:
1. 配置地图边框
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
border: {
show: true,
width: 1,
color: '#111'
}
}]
};
2. 渲染地图图表
myChart.setOption(option);
十五、实战案例十四:添加地图阴影
在地图上添加阴影,可以通过以下步骤实现:
1. 配置地图阴影
var option = {
series: [{
type: 'map',
map: 'china',
label: {
show: true,
formatter: '{b}'
},
itemStyle: {
areaColor: '#323c48',
borderColor: '#111'
},
data: [
{
name: '北京',
value: [116.46, 39.92],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
},
{
name: '上海',
value: [121.47, 31.23],
label: {
normal: {
show: true,
formatter: "人口:{c}"
}
},
itemStyle: {
normal: {
color: "#f4e925"
}
}
}
],
shadowBlur: 10,
shadowColor: '#333'
}]
};
2. 渲染地图图表
myChart.setOption(option);
