揭秘:用ECharts轻松制作地图图表,五大实战案例详解!

2026-07-03 0 阅读

在数据可视化领域,地图图表因其直观性和易于理解的特点,受到了广泛关注。ECharts 作为一款强大的数据可视化库,提供了丰富的地图图表制作功能。本文将深入解析如何利用 ECharts 制作地图图表,并通过五大实战案例为您详细展示其应用。

一、ECharts 地图图表简介

ECharts 地图图表是 ECharts 库中的一种图表类型,可以用于展示地理位置信息、空间分布等数据。它支持多种地图类型,包括世界地图、中国地图、省份地图等,同时还支持自定义地图。

二、制作 ECharts 地图图表的步骤

  1. 引入 ECharts 和地图数据:首先,需要引入 ECharts 库和对应的地图数据文件。地图数据通常以 JSON 格式存储。

  2. 初始化地图图表:通过 ECharts 的初始化方法,创建一个地图图表实例。

  3. 配置地图图表选项:设置地图图表的各种选项,如地图类型、中心点、缩放级别等。

  4. 添加数据:将数据添加到地图图表中,数据可以是以地理坐标为键值的数组。

  5. 渲染地图图表:调用渲染方法,将地图图表显示在页面上。

三、实战案例一:世界地图展示各国GDP

案例说明

本案例将展示如何使用 ECharts 创建一个世界地图,并展示各国的 GDP 数据。

代码示例

// 引入 ECharts 和地图数据
var myChart = echarts.init(document.getElementById('main'));
var worldMap = echarts.getMap('world');

// 配置地图图表选项
var option = {
    title: {
        text: '世界 GDP 分布'
    },
    tooltip: {
        trigger: 'item',
        formatter: function(params) {
            return params.name + ': ' + params.value;
        }
    },
    visualMap: {
        min: 0,
        max: 1000000,
        left: 'left',
        top: 'bottom',
        text: ['高', '低'], // 文本,默认为数值文本
        calculable: true
    },
    series: [{
        name: 'GDP',
        type: 'map',
        mapType: 'world',
        roam: true,
        label: {
            show: true
        },
        data: gdpData
    }]
};

// 添加数据
var gdpData = [{
    name: '美国',
    value: 212595
}, {
    name: '中国',
    value: 113930
}, /* 更多国家数据 */];

// 渲染地图图表
myChart.setOption(option);

代码解析

  • 引入 ECharts 和世界地图数据。
  • 初始化地图图表实例。
  • 配置地图图表选项,包括标题、提示框、视觉映射等。
  • 添加 GDP 数据。
  • 渲染地图图表。

四、实战案例二:中国地图展示城市人口密度

案例说明

本案例将展示如何使用 ECharts 创建一个中国地图,并展示各城市的人口密度。

代码示例

// 引入 ECharts 和中国地图数据
var myChart = echarts.init(document.getElementById('main'));
var chinaMap = echarts.getMap('china');

// 配置地图图表选项
var option = {
    title: {
        text: '中国城市人口密度'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}: {c}'
    },
    visualMap: {
        min: 0,
        max: 500,
        left: 'left',
        top: 'bottom',
        text: ['高', '低'],
        calculable: true
    },
    series: [{
        name: '人口密度',
        type: 'map',
        mapType: 'china',
        roam: true,
        label: {
            show: true
        },
        data: populationDensityData
    }]
};

// 添加数据
var populationDensityData = [{
    name: '北京',
    value: 2164
}, {
    name: '上海',
    value: 2425
}, /* 更多城市数据 */];

// 渲染地图图表
myChart.setOption(option);

代码解析

  • 引入 ECharts 和中国地图数据。
  • 初始化地图图表实例。
  • 配置地图图表选项,包括标题、提示框、视觉映射等。
  • 添加人口密度数据。
  • 渲染地图图表。

五、实战案例三:自定义地图展示旅游路线

案例说明

本案例将展示如何使用 ECharts 创建一个自定义地图,并展示旅游路线。

代码示例

// 引入 ECharts
var myChart = echarts.init(document.getElementById('main'));

// 配置地图图表选项
var option = {
    title: {
        text: '旅游路线'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '路线',
        type: 'lines',
        coordinateSystem: 'geo',
        polyline: true,
        data: [{
            coords: [[116.391, 39.9203], [116.4674, 39.984], [116.4646, 39.9844], [116.4609, 39.985]]
        }],
        lineStyle: {
            color: '#fff',
            opacity: 0.6,
            width: 1
        },
        emphasis: {
            label: {
                show: true
            }
        }
    }, {
        name: '点',
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [{
            name: '起点',
            value: [116.391, 39.9203]
        }, {
            name: '终点',
            value: [116.4674, 39.984]
        }],
        symbolSize: 10,
        showEffectOn: 'render',
        rippleEffect: {
            brushType: 'stroke'
        },
        hoverAnimation: true,
        label: {
            normal: {
                formatter: '{b}',
                position: 'right',
                show: true
            }
        },
        zlevel: 1
    }]
};

// 渲染地图图表
myChart.setOption(option);

代码解析

  • 引入 ECharts。
  • 初始化地图图表实例。
  • 配置地图图表选项,包括标题、提示框、系列数据等。
  • 添加路线数据。
  • 渲染地图图表。

六、实战案例四:三维地图展示地理信息

案例说明

本案例将展示如何使用 ECharts 创建一个三维地图,并展示地理信息。

代码示例

// 引入 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
    },
    geo3D: {
        map: 'world',
        ambientLight: {
            intensity: 1
        },
        areaLight: {
            intensity: 2,
            color: '#FFFFFF',
            top: 2,
            side: 2
        },
        lightMap: {
            show: true
        },
        viewControl: {
            enable: true,
            minRadius: 1.5,
            maxRadius: 4,
            autoRotate: true
        },
        postEffect: {
            enable: true,
            sauce: 'luminance'
        }
    },
    series: [{
        type: 'scatter3D',
        coordinateSystem: 'geo3D',
        symbolSize: 10,
        itemStyle: {
            color: '#FF6347',
            opacity: 0.8
        },
        data: [{
            name: '美国',
            value: [116.391, 39.9203, 100]
        }, {
            name: '中国',
            value: [116.4674, 39.984, 100]
        }, /* 更多数据 */]
    }]
};

// 渲染地图图表
myChart.setOption(option);

代码解析

  • 引入 ECharts。
  • 初始化地图图表实例。
  • 配置地图图表选项,包括标题、提示框、视觉映射、三维地球配置等。
  • 添加三维地理信息数据。
  • 渲染地图图表。

七、实战案例五:热力地图展示天气温度

案例说明

本案例将展示如何使用 ECharts 创建一个热力地图,并展示天气温度。

代码示例

// 引入 ECharts
var myChart = echarts.init(document.getElementById('main'));

// 配置地图图表选项
var option = {
    title: {
        text: '天气温度'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}: {c}°C'
    },
    visualMap: {
        min: -50,
        max: 50,
        left: 'left',
        top: 'bottom',
        text: ['高', '低'],
        calculable: true
    },
    series: [{
        name: '温度',
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: weatherData,
        label: {
            normal: {
                formatter: '{c}',
                position: 'top'
            }
        }
    }]
};

// 添加数据
var weatherData = [
    [116.4674, 39.984, 25],
    [116.4646, 39.9844, 23],
    [116.4609, 39.985, 20],
    /* 更多数据 */
];

// 渲染地图图表
myChart.setOption(option);

代码解析

  • 引入 ECharts。
  • 初始化地图图表实例。
  • 配置地图图表选项,包括标题、提示框、视觉映射、系列数据等。
  • 添加天气温度数据。
  • 渲染地图图表。

总结

通过以上五大实战案例,我们可以看到 ECharts 在地图图表制作方面的强大功能。无论您是展示地理信息、经济数据,还是展示旅游路线、天气温度,ECharts 都能为您提供丰富的解决方案。希望本文对您有所帮助!

分享到: