教你用echarts轻松绘制地图图表:10个实用案例,一学就会

2026-11-03 0 阅读

地图图表是一种非常直观的展示地理分布和空间关系的工具。ECharts 是一款功能强大的 JavaScript 图表库,它支持丰富的图表类型,包括地图图表。本文将为你介绍10个实用案例,帮助你轻松学会使用 ECharts 绘制地图图表。

案例一:中国地图

1.1 案例描述

展示中国各个省份的地图,并用不同颜色表示不同区域的数值。

1.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例二:世界地图

2.1 案例描述

展示世界地图,并用不同颜色表示不同国家的数值。

2.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入世界地图数据
require('echarts/map/js/world');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '世界地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'world',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '美国', value: Math.round(Math.random() * 1000)},
                {name: '中国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例三:行政区划地图

3.1 案例描述

展示某个省级行政区的地图,并用不同颜色表示不同市县的数值。

3.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入省级行政区地图数据
require('echarts/map/js/province');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '行政区划地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'province',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他市县
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例四:交通地图

4.1 案例描述

展示某个城市的交通地图,并用不同颜色表示不同道路的拥堵程度。

4.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入城市交通地图数据
require('echarts/map/js/city');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '交通地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['拥堵','畅通'],
        calculable: true
    },
    series: [
        {
            name: '拥堵程度',
            type: 'map',
            mapType: 'city',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他道路
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例五:地理坐标地图

5.1 案例描述

展示某个区域的地理坐标地图,并用不同颜色表示不同地点的数值。

5.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入地理坐标地图数据
require('echarts/map/js/gisMap');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地理坐标地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'gisMap',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他地点
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例六:卫星地图

6.1 案例描述

展示某个区域的卫星地图,并用不同颜色表示不同区域的数值。

6.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入卫星地图数据
require('echarts/map/js/satellite');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '卫星地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'satellite',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他区域
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例七:三维地图

7.1 案例描述

展示某个区域的三维地图,并用不同颜色表示不同区域的数值。

7.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入三维地图数据
require('echarts/map/js/3DMap');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '三维地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: '3DMap',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他区域
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例八:城市热力图

8.1 案例描述

展示某个城市的热力图,并用不同颜色表示不同区域的温度。

8.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入城市热力图数据
require('echarts/map/js/heatmap');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '城市热力图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '温度',
            type: 'map',
            mapType: 'heatmap',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他区域
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例九:行政区划边界图

9.1 案例描述

展示某个省级行政区的行政区划边界图,并用不同颜色表示不同市县。

9.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入省级行政区边界图数据
require('echarts/map/js/boundary');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '行政区划边界图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'boundary',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他市县
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例十:三维地形图

10.1 案例描述

展示某个区域的三维地形图,并用不同颜色表示不同高度的数值。

10.2 实现代码

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入三维地形图数据
require('echarts/map/js/terrain');

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '三维地形图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '高度',
            type: 'map',
            mapType: 'terrain',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '杭州市', value: Math.round(Math.random() * 1000)},
                {name: '宁波市', value: Math.round(Math.random() * 1000)},
                // ... 其他区域
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

通过以上10个实用案例,相信你已经掌握了使用 ECharts 绘制地图图表的基本方法。在实际应用中,你可以根据自己的需求选择合适的地图类型和配置项,打造出美观、实用的地图图表。

分享到: