教你轻松制作echarts地图图表:30个实用案例解析,让你快速上手!

2026-08-02 0 阅读

ECharts 地图图表是一种强大的可视化工具,可以帮助我们更好地理解地理分布和空间关系。在这篇文章中,我将为你解析30个实用的 ECharts 地图图表案例,让你轻松上手,快速掌握地图图表的制作技巧。

1. 基础地图展示

案例描述:展示一个基本的地图,如中国地图。

实现方法

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

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: 'china'
    }]
};

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

2. 地图标注

案例描述:在地图上标注特定的地点。

实现方法

// 添加标注点
option.series[0].data.push({
    name: '北京',
    value: [116.46, 39.92]
});

3. 热力图

案例描述:使用热力图展示人口密度或其他数据的分布。

实现方法

option.series[0].type = 'heatmap';
option.series[0].data = [
    // ... 根据实际数据填充
];

4. 雷达图

案例描述:在地图上展示雷达图,如展示不同城市的历史天气数据。

实现方法

option.series[0].type = 'radar';
option.series[0].data = [
    // ... 根据实际数据填充
];

5. 地图动画

案例描述:地图上展示数据变化,如展示城市人口增长趋势。

实现方法

option.animation = true;
option.series[0].animationDelay = function (idx) {
    return idx * 100;
};

6. 地图交互

案例描述:实现地图上的交互功能,如点击地图区域查看详细信息。

实现方法

myChart.on('click', function (params) {
    console.log(params.name); // 输出被点击的区域名称
});

7. 地图缩放与平移

案例描述:用户可以通过鼠标操作来缩放和平移地图。

实现方法

ECharts 地图图表默认支持缩放和平移功能,无需额外设置。

8. 多级地图

案例描述:展示中国省、市、县三级地图。

实现方法

option.series[0].mapType = 'china';
option.series[0].data = [
    // ... 根据实际数据填充
];

9. 地图颜色渐变

案例描述:根据数据值,地图颜色渐变显示。

实现方法

option.series[0].itemStyle = {
    areaColor: {
        type: 'linear',
        x: 0,
        y: 0,
        x2: 0,
        y2: 1,
        colorStops: [{
            offset: 0, color: '#003366' // 0% 处的颜色
        }, {
            offset: 1, color: '#0000CC' // 100% 处的颜色
        }],
        globalCoord: false // 缺省为 false
    }
};

10. 地图数据聚合

案例描述:将多个数据点聚合显示。

实现方法

option.series[0].data = [
    // ... 根据实际数据填充
].map(function (item) {
    // 聚合规则
    if (item.value > 100) {
        return {
            name: item.name,
            value: [item.value, 0]
        };
    }
    return item;
});

11. 地图标签显示

案例描述:在地图上显示标签,如城市名称。

实现方法

option.series[0].label = {
    show: true,
    position: 'top',
    formatter: '{b}'
};

12. 地图边界线

案例描述:展示地图的边界线。

实现方法

option.series[0].borderLine = {
    show: true,
    color: '#000000'
};

13. 地图阴影效果

案例描述:给地图添加阴影效果。

实现方法

option.series[0].shadowBlur = 10;
option.series[0].shadowColor = '#333';

14. 地图渐变背景

案例描述:地图背景颜色渐变。

实现方法

option.series[0].backgroundColor = {
    type: 'linear',
    x: 0,
    y: 0,
    x2: 0,
    y2: 1,
    colorStops: [{
        offset: 0, color: '#003366' // 0% 处的颜色
    }, {
        offset: 1, color: '#0000CC' // 100% 处的颜色
    }],
    globalCoord: false // 缺省为 false
};

15. 地图区域高亮

案例描述:点击地图区域,高亮显示。

实现方法

myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        myChart.dispatchAction({
            type: 'highlight',
            seriesIndex: 0,
            dataIndex: params.dataIndex
        });
    }
});

16. 地图点击事件

案例描述:点击地图区域,执行特定操作。

实现方法

myChart.on('click', function (params) {
    console.log(params.name); // 输出被点击的区域名称
    // ... 执行其他操作
});

17. 地图数据过滤

案例描述:根据条件过滤地图上的数据点。

实现方法

// 过滤条件
var filterCondition = function (item) {
    return item.value > 100;
};

option.series[0].data = option.series[0].data.filter(filterCondition);

18. 地图数据排序

案例描述:根据数据值对地图上的数据点进行排序。

实现方法

option.series[0].data.sort(function (a, b) {
    return b.value - a.value;
});

19. 地图数据分组

案例描述:将地图上的数据点按照类别分组显示。

实现方法

option.series[0].data = option.series[0].data.map(function (item) {
    item.itemStyle = {
        color: item.category ? categoryColors[item.category] : '#c23531'
    };
    return item;
});

20. 地图数据聚合统计

案例描述:对地图上的数据进行聚合统计。

实现方法

// 聚合统计函数
function aggregateData(data) {
    var result = {};
    data.forEach(function (item) {
        var key = item.name;
        if (!result[key]) {
            result[key] = {
                name: key,
                value: item.value
            };
        } else {
            result[key].value += item.value;
        }
    });
    return Object.values(result);
}

option.series[0].data = aggregateData(option.series[0].data);

21. 地图数据动态更新

案例描述:动态更新地图上的数据。

实现方法

// 更新数据函数
function updateData(data) {
    option.series[0].data = data;
    myChart.setOption(option);
}

// 定时更新数据
setInterval(function () {
    var newData = [
        // ... 根据实际数据填充
    ];
    updateData(newData);
}, 3000);

22. 地图数据导出

案例描述:将地图上的数据导出为CSV格式。

实现方法

// 导出数据函数
function exportData(data) {
    var str = 'Name,Value\n';
    data.forEach(function (item) {
        str += item.name + ',' + item.value + '\n';
    });
    var blob = new Blob([str], {type: 'text/csv'});
    var url = URL.createObjectURL(blob);
    var a = document.createElement('a');
    a.href = url;
    a.download = 'data.csv';
    a.click();
}

exportData(option.series[0].data);

23. 地图数据可视化

案例描述:将地图上的数据以可视化形式展示。

实现方法

// 可视化函数
function visualizeData(data) {
    var chart = echarts.init(document.getElementById('main'));
    chart.setOption(option);
}

24. 地图数据导出为JSON格式

案例描述:将地图上的数据导出为JSON格式。

实现方法

// 导出数据函数
function exportDataToJson(data) {
    var str = JSON.stringify(data, null, 4);
    var blob = new Blob([str], {type: 'application/json'});
    var url = URL.createObjectURL(blob);
    var a = document.createElement('a');
    a.href = url;
    a.download = 'data.json';
    a.click();
}

exportDataToJson(option.series[0].data);

25. 地图数据导入

案例描述:从CSV或JSON格式导入地图数据。

实现方法

// 导入数据函数
function importData(file) {
    var reader = new FileReader();
    reader.onload = function (e) {
        var data = e.target.result;
        // ... 根据文件格式解析数据
        // ... 更新地图数据
    };
    reader.readAsText(file);
}

26. 地图数据筛选

案例描述:根据条件筛选地图上的数据。

实现方法

// 筛选条件
var filterCondition = function (item) {
    return item.value > 100;
};

option.series[0].data = option.series[0].data.filter(filterCondition);

27. 地图数据排序与筛选

案例描述:根据条件对地图上的数据进行排序和筛选。

实现方法

// 排序与筛选条件
var sortCondition = function (a, b) {
    return b.value - a.value;
};
var filterCondition = function (item) {
    return item.value > 100;
};

option.series[0].data.sort(sortCondition).filter(filterCondition);

28. 地图数据分组与筛选

案例描述:根据条件对地图上的数据进行分组和筛选。

实现方法

// 分组与筛选条件
var groupCondition = function (item) {
    return item.category;
};
var filterCondition = function (item) {
    return item.value > 100;
};

option.series[0].data = option.series[0].data.reduce(function (acc, item) {
    var group = groupCondition(item);
    if (!acc[group]) {
        acc[group] = [];
    }
    if (filterCondition(item)) {
        acc[group].push(item);
    }
    return acc;
}, {}).map(function (group) {
    return group.map(function (item) {
        item.itemStyle = {
            color: categoryColors[group]
        };
        return item;
    });
});

29. 地图数据聚合与筛选

案例描述:根据条件对地图上的数据进行聚合和筛选。

实现方法

// 聚合与筛选条件
var aggregateCondition = function (item) {
    return item.value > 100;
};
var filterCondition = function (item) {
    return item.value > 50;
};

option.series[0].data = option.series[0].data.reduce(function (acc, item) {
    var key = item.name;
    if (!acc[key]) {
        acc[key] = {
            name: key,
            value: item.value
        };
    } else {
        acc[key].value += item.value;
    }
    return acc;
}, {}).map(function (item) {
    if (filterCondition(item)) {
        return item;
    }
    return null;
}).filter(function (item) {
    return item;
});

30. 地图数据动态更新与筛选

案例描述:动态更新地图上的数据,并根据条件进行筛选。

实现方法

// 更新数据函数
function updateData(data) {
    option.series[0].data = data;
    myChart.setOption(option);
}

// 筛选条件
var filterCondition = function (item) {
    return item.value > 100;
};

// 定时更新数据并筛选
setInterval(function () {
    var newData = [
        // ... 根据实际数据填充
    ];
    updateData(newData.filter(filterCondition));
}, 3000);

以上是30个实用的 ECharts 地图图表案例解析,希望对你有所帮助。通过这些案例,你可以轻松上手 ECharts 地图图表的制作,并根据自己的需求进行个性化定制。祝你学习愉快!

分享到: