从北京到上海,echarts地图图表如何轻松展示两地距离及交通路线

2026-09-18 0 阅读

在数据可视化领域,ECharts是一个非常强大的JavaScript库,它可以帮助我们轻松地将数据以图表的形式展示出来。下面,我将详细介绍如何使用ECharts创建一个地图图表,展示从北京到上海的直线距离以及可能的交通路线。

准备工作

在开始之前,请确保你的项目中已经引入了ECharts库。你可以从ECharts的官方网站下载最新的ECharts.js文件,并将其包含在HTML文件中。

<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>

创建基础地图

首先,我们需要创建一个基本的地图图表。ECharts提供了丰富的地图类型,包括世界地图、中国地图、省份地图等。对于展示北京到上海的距离和路线,中国地图就足够了。

var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '北京到上海距离及交通路线'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '路线',
            type: 'lines',
            coordinateSystem: 'geo',
            data: [
                // 这里将使用示例数据,实际使用时需要替换为真实的经纬度数据
                {
                    source: '北京',
                    target: '上海',
                    // 使用示例数据,实际使用时需要替换为真实的经纬度
                    coords: [[116.46, 39.92], [121.47, 31.23]]
                }
            ],
            lineStyle: {
                color: 'blue',
                width: 6,
                opacity: 0.6,
                curveness: 0.2
            }
        },
        {
            name: '北京',
            type: 'effectScatter',
            coordinateSystem: 'geo',
            data: [{
                name: '北京',
                value: [116.46, 39.92],
                symbolSize: 20,
                showEffectOn: 'render'
            }],
            rippleEffect: {
                brushType: 'stroke'
            },
            hoverAnimation: true,
            label: {
                normal: {
                    formatter: '{b}',
                    position: 'right',
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    color: '#f4e925',
                    shadowBlur: 10,
                    shadowColor: '#333'
                }
            },
            zlevel: 1
        },
        {
            name: '上海',
            type: 'effectScatter',
            coordinateSystem: 'geo',
            data: [{
                name: '上海',
                value: [121.47, 31.23],
                symbolSize: 20,
                showEffectOn: 'render'
            }],
            rippleEffect: {
                brushType: 'stroke'
            },
            hoverAnimation: true,
            label: {
                normal: {
                    formatter: '{b}',
                    position: 'right',
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    color: '#f4e925',
                    shadowBlur: 10,
                    shadowColor: '#333'
                }
            },
            zlevel: 1
        }
    ],
    geo: {
        map: 'china',
        roam: true,
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    }
};

myChart.setOption(option);

在上面的代码中,我们首先创建了一个名为myChart的ECharts实例,然后定义了一个option对象,其中包含了图表的配置信息。我们设置了图表的标题、提示框、系列(包括路线和标记点)、地理坐标系等。

添加距离信息

为了在地图上显示北京到上海的实际距离,我们可以添加一个文本元素,使用text系列来实现。

{
    name: '距离',
    type: 'text',
    coordinateSystem: 'geo',
    position: [120, 30],
    textStyle: {
        color: '#fff',
        fontSize: 16,
        fontWeight: 'bold'
    },
    content: '直线距离:约1200公里'
}

在上面的代码中,我们定义了一个text系列,用于在地图上显示距离信息。我们将文本放置在地图上北京和上海大致中间的位置,并设置了文本的样式。

实际应用

将上述代码整合到你的HTML页面中,并确保你有一个ID为main的DOM元素来放置图表。运行页面后,你应该能够看到一个包含北京到上海距离及路线的地图图表。

通过以上步骤,你就可以使用ECharts轻松地创建一个展示从北京到上海距离及交通路线的地图图表了。记得在实际应用中替换示例数据为真实的经纬度信息。

分享到: