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);