一、概述

echarts bmap是由百度地图和echarts结合,实现了在echarts地图中使用百度地图底图,同时融合了echarts中数据可视化功能。通过bmap,我们可以在网页上通过图表展现地理信息。

在使用echarts bmap前,我们需要首先引进百度地图JavaScript API和echarts.js文件。然后,初始化百度地图:

    // 引入百度地图JS API
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=[your-key]">
    // 引入echarts.js文件
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js">
    
    // 初始化地图容器
    var myChart = echarts.init(document.getElementById('map'));
    var bmap = myChart.getModel().getComponent('bmap').getBMap();

二、bmap常用配置

1、设置地图中心点和缩放级别:

    // 设置地图中心和缩放级别
    bmap.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

2、添加控件:

    // 添加缩放、平移控件
    bmap.addControl(new BMap.NavigationControl({ anchor: BMAP_ANCHOR_TOP_RIGHT }));
    // 添加比例尺控件
    bmap.addControl(new BMap.ScaleControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT }));

3、设置地图样式:

    // 自定义地图样式
    bmap.setMapStyleV2({
        styleId: 'your-style-id'
    });

4、启用地图拖拽、缩放、滚轮缩放:

    // 启用地图拖拽
    bmap.enableDragging();

    // 启用滚轮缩放
    bmap.enableScrollWheelZoom();

    // 启用双击放大
    bmap.enableDoubleClickZoom();

    // 启用缩放按钮
    bmap.enablePinchToZoom();

三、在bmap上添加echarts图表

在echarts中添加bmap组件,代码为:

    option = {
      // 设置bmap组件
      bmap: {
         center: [116.404, 39.915],
         zoom: 11,
         roam: true,
         mapStyle: {
             styleJson: [
                {
                    'featureType': 'water',
                    'elementType': 'all',
                    'stylers': {
                        'color': '#d1d1d1'
                    }
                },
                {
                    'featureType': 'land',
                    'elementType': 'all',
                    'stylers': {
                        'color': '#f3f3f3'
                    }
                }]
            }
        },
        series: [
            // 设置散点图
            {
               type: 'scatter',
               coordinateSystem: 'bmap',
               data: [
                  [116.405, 39.915],
                  [116.404, 39.915],
                  [116.403, 39.915],
                  [116.402, 39.915],
                  [116.401, 39.915]
               ],
            }
        ]
    };
    // 将option赋给echarts实例
    myChart.setOption(option);

在上述代码中,我们通过设置bmap组件来添加echarts图表,散点图通过”type”:”scatter”来定义,”coordinateSystem”:”bmap”表示在bmap组件上绘制散点图,散点图数据通过”data”来设置。

四、bmap事件

通过bmap的事件函数,我们可以对地图上的交互进行响应,常用事件有click、dblclick、mouseover、mouseout等。以单击事件为例:

    // 用户单击bmap组件会触发的事件函数
    bmap.addEventListener('click', function (e) {
        // 获取单击点的经纬度信息
        var lng = e.point.lng;
        var lat = e.point.lat;
        console.log(lng, lat);
    });

五、结语

通过以上的介绍,我们可以看到echarts bmap提供了丰富的地理信息展示功能,通过简单的配置和API调用,我们可以在网页中添加地图、图表,实现数据可视化。