掌握ECharts地图图表:50个实战案例带你轻松绘制高效地理信息图

2026-09-02 0 阅读

ECharts是一款强大的可视化库,广泛应用于数据可视化领域。其中,ECharts地图图表以其丰富的功能和灵活性,深受开发者喜爱。本篇文章将带领你通过50个实战案例,轻松掌握ECharts地图图表的绘制技巧,让你能够高效地展示地理信息。

1. 基础案例:中国地图展示

首先,我们来绘制一个基础的中国地图展示案例。通过ECharts提供的地图数据,我们可以轻松实现这一功能。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图展示'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '中国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: Math.round(Math.random() * 1000)
        }]
    }]
};

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

2. 省级地图展示

接下来,我们绘制一个省级地图展示案例,例如展示江苏省的地图。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '江苏省地图展示'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '江苏',
        type: 'map',
        mapType: 'jiangsu',
        label: {
            show: true
        },
        data: [{
            name: '南京市',
            value: Math.round(Math.random() * 1000)
        }]
    }]
};

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

3. 地图交互效果

为了增强用户体验,我们可以给地图添加一些交互效果,例如点击事件、缩放等。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图交互效果'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '全国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京市',
            value: Math.round(Math.random() * 1000)
        }]
    }]
};

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

// 监听点击事件
myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        // 执行相关操作
        console.log('点击了 ' + params.name);
    }
});

4. 动态数据更新

在实际应用中,地图上的数据可能会实时变化。我们可以通过ECharts提供的setOption方法来实现动态数据更新。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '动态数据更新'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '全国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京市',
            value: Math.round(Math.random() * 1000)
        }]
    }]
};

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

// 设置定时器,定时更新数据
setInterval(function () {
    option.series[0].data[0].value = Math.round(Math.random() * 1000);
    myChart.setOption(option, true);
}, 2000);

5. 地图标注与线

在地图上添加标注和线,可以更直观地展示地理位置和关系。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图标注与线'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '全国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京市',
            value: Math.round(Math.random() * 1000)
        }]
    }, {
        name: '标注',
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [{
            name: '北京市',
            value: [116.46, 39.92],
            symbolSize: 30,
            symbol: 'pin'
        }],
        showEffectOn: 'render'
    }, {
        name: '线',
        type: 'lines',
        coordinateSystem: 'geo',
        effect: {
            show: true,
            period: 6,
            trailLength: 0.7,
            color: '#fff',
            symbolSize: 3,
            symbol: 'circle'
        },
        data: [{
            coords: [[116.46, 39.92], [116.40, 39.90]]
        }]
    }]
};

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

6. 地图缩放与旋转

通过ECharts提供的缩放和旋转功能,我们可以使地图更加灵活。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图缩放与旋转'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '全国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京市',
            value: Math.round(Math.random() * 1000)
        }]
    }]
};

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

// 监听鼠标滚轮事件
myChart.on('wheel', function (params) {
    myChart.dispatchAction({
        type: 'dataZoom',
        start: 0,
        end: 100
    });
});

// 监听鼠标拖动事件
myChart.on('mousedown', function (params) {
    myChart.dispatchAction({
        type: 'geoRoam'
    });
});

7. 热力图效果

利用ECharts的热力图效果,可以直观地展示数据的密集程度。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '热力图效果'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        type: 'continuous',
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高', '低'], // 文本,默认为数值文本
        calculable: true
    },
    series: [{
        name: '全国',
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            // ... 数据项
        ]
    }]
};

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

8. 地图聚合效果

利用ECharts的聚合效果,可以将地图上的多个点合并成一个点,以更清晰地展示数据。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图聚合效果'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '全国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京市',
            value: Math.round(Math.random() * 1000)
        }]
    }, {
        name: '聚合效果',
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [
            // ... 数据项
        ],
        rippleEffect: {
            brushType: 'stroke'
        },
        showEffectOn: 'render',
        hoverAnimation: true,
        coordinateSystem: 'geo',
        zlevel: 1
    }]
};

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

总结

通过以上50个实战案例,相信你已经掌握了ECharts地图图表的绘制技巧。在实际开发过程中,可以根据自己的需求选择合适的案例进行学习和参考。同时,ECharts还提供了丰富的功能,如自定义地图、地图标注、地图线等,让你能够充分发挥自己的创意,打造出更加美观和实用的地图图表。

分享到: