继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用echarts结合百度地图API做迁徙图

ibeautiful
关注TA
已关注
手记 343
粉丝 107
获赞 529

echarts.js原先可以不使用百度地图API,直接实现迁徙图的效果。后来因为一些原因,地理信息的定位需要借助百度地图来实现。


首先需要echarts
然后是echarts的插件 bmap
之后是需要在页面上结合百度地图,所以要申请一个百度地图的api key地图Api申请地址

这里申请一个JS API在网页端 使用就可以了

准备就绪,就可以开始制作了。

  • 百度echarts本身的简单使用教程
    echarts最简单教程    
    这是echarts给出的快速上手教程,关于配置文件中的每个模块的作用在后面简单介绍。文档中也有更详细的介绍和使用方法。

  • 搭一个简易的测试页面

        demo/    
            demo.html        map.js    
        js/    
          echarts.js    
          bmap.js
    <html><head>
        <meta charset="utf-8">
        <style>
            .mainwindow{            height: 500px;            width: 500px;
            }        .mapwindow{            height: 100%;            width: 500px;            background-color: #3dd17b;            float: left;
           }    </style></head><body>
        <div id="main" class="mainwindow"> 
            <div id="map" class="mapwindow"></div>
        </div></body><script src="http://api.map.baidu.com/api?v=2.0&ak=你申请的API KEY"></script><script src="../js/echarts.js"></script> <script src="../js/bmap.js"></script><script src="./map.js"></script></html>
    //初始化echarts,并和框体map绑定。var myChart = echarts.init(document.getElementById('map'));//手工写入的一个迁徙线的数据,正常项目中应该是由AJAX或其他方式来获取数据。var linesdata = [{    fromName: "银泰",    toName: "路口",    coords: [
            [120.114271,30.305938],
            [120.118951,30.309134]
        ]
    }];//echarts中使用地图的配置参数var option = {bmap: {    // 百度地图中心经纬度 坐标拾取器http://api.map.baidu.com/lbsapi/getpoint/index.html
        center: [120.114271,30.305938],    // 百度地图缩放等级,数字越大,放大越大,地图比例尺越小
        zoom: 16,    // 是否开启拖拽缩放,可以只设置 'scale' 或者 'move'
        roam: false,    // mapStyle是百度地图的自定义样式,见 http://developer.baidu.com/map/custom/
        mapStyle: {        styleJson: [{                "featureType": "water",                "elementType": "all",                "stylers": {                    "color": "#021019"
                    }
                },
                {                "featureType": "highway",                "elementType": "geometry.fill",                "stylers": {                    "color": "#000000"
                    }
                },
                {                "featureType": "highway",                "elementType": "geometry.stroke",                "stylers": {                    "color": "#147a92"
                    }
                },
                {                "featureType": "arterial",                "elementType": "geometry.fill",                "stylers": {                    "color": "#000000"
                    }
                },
                {                "featureType": "arterial",                "elementType": "geometry.stroke",                "stylers": {                    "color": "#0b3d51"
                    }
                },
                {                "featureType": "local",                "elementType": "geometry",                "stylers": {                    "color": "#000000"
                    }
                },
                {                "featureType": "land",                "elementType": "all",                "stylers": {                    "color": "#08304b"
                    }
                },
                {                "featureType": "railway",                "elementType": "geometry.fill",                "stylers": {                    "color": "#000000"
                    }
                },
                {                "featureType": "railway",                "elementType": "geometry.stroke",                "stylers": {                    "color": "#08304b"
                    }
                },
                {                "featureType": "subway",                "elementType": "geometry",                "stylers": {                    "lightness": -70
                    }
                },
                {                "featureType": "building",                "elementType": "geometry.fill",                "stylers": {                    "color": "#000000"
                    }
                },
                {                "featureType": "all",                "elementType": "labels.text.fill",                "stylers": {                    "color": "#857f7f"
                    }
                },
                {                "featureType": "all",                "elementType": "labels.text.stroke",                "stylers": {                    "color": "#000000"
                    }
                },
                {                "featureType": "building",                "elementType": "geometry",                "stylers": {                    "color": "#022338"
                    }
                },
                {                "featureType": "green",                "elementType": "geometry",                "stylers": {                    "color": "#062032"
                    }
                },
                {                "featureType": "boundary",                "elementType": "all",                "stylers": {                    "color": "#1e1c1c"
                    }
                },
                {                "featureType": "manmade",                "elementType": "geometry",                "stylers": {                    "color": "#022338"
                    }
                },
                {                "featureType": "poi",                "elementType": "all",                "stylers": {                    "visibility": "off"
                    }
                },
                {                "featureType": "all",                "elementType": "labels.icon",                "stylers": {                    "visibility": "off"
                    }
                },
                {                "featureType": "all",                "elementType": "labels.text.fill",                "stylers": {                    "color": "#2da0c6",                    "visibility": "on"
                    }
                }
            ]
        }
    },//series是在地图上的线条等效果的配置文件,具体可以查阅文档。series: [{   type: 'lines',      coordinateSystem: 'bmap',      zlevel: 2,      effect: {         show: true,         period: 6,         trailLength: 0,         symbol: 'arrow',         symbolSize: 10
         },     lineStyle: {         normal: {             color: "#a6c84c",              width: 2,             opacity: 0.6,              curveness: 0.2
             }
        },    //将手动做的一个迁徙数据放入线条的数据部分。
        data: linesdata
        }]
    };//配置参数传入图形实例中myChart.setOption(option);//初始化bmap和echarts实例绑定var bmap = myChart.getModel().getComponent('bmap').getBMap();
    bmap.addControl(new BMap.MapTypeControl());
  1. map.js 用来完成写入echarts中的图形配置文件和图形的初始化和加载

  1. demo.html,画一个最简单的div窗口来容纳迁徙图。

  1. 文件结构

在浏览器中打开demo.html就可以看到一个杭州市城西银泰到一个小路口的箭头指向的线段。简易的迁徙图就制作完成了。



作者:chan2017
链接:https://www.jianshu.com/p/5ceb1c0c1cef


打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP