因项目需求,需要做一个经销商在区域内的分布情况,需要用Echarts散点图配合百度地图的实景图来达到效果,看了下百度地图文档,未找到相关于Echarts的相关扩展,Echarts这很容易的找到了应用的放大。
下面是Echarts关于如何使用的介绍(当然是贴图啦)
主要核心文件是Echarts.js/bmap.js/百度地图的秘钥及key码。我用了jQ,不喜欢的小伙伴也可以有源生。
话不多说:直接奉上源码,方便急需的小伙伴。
html
1 <html> 2 3 <head> 4 <meta charset="utf-8"> 5 <script src="http://api.map.baidu.com/api?v=2.0&ak=您的key值"></script> 6 <script src="./jquery.min.js"></script> 7 <script src="./echarts.js"></script> 8 <script src="./bmap.js"></script> 9 <style type="text/css"> 10 body { 11 margin: 0; 12 } 13 14 #main { 15 height: 100%; 16 } 17 18 /*去除百度地图LOGO */ 19 20 #main .BMap_cpyCtrl{ 21 display: none; 22 } 23 24 #main .anchorBL{ 25 display: none; 26 } 27 </style> 28 </head> 29 30 <body> 31 <div id="main"></div> 32 <!-- 案例的js代码 --> 33 <script src="./example.js"></script> 34 </body> 35 36 </html>
js部分(example.js):
var myChart = echarts.init(document.getElementById('main')); myChart.setOption({ tooltip: { trigger: 'item', formatter: function (params) { var res = ''; res += params.data.name + '<br/>'; res += "我就:" + params.data.options.obj1 + '<br/>'; return res } }, legend: { bottom: 10, data: ['合作社', '涉农企业'], backgroundColor: '#fff' }, bmap: { center: [117.208714, 37.325947], zoom: 7, roam: true, }, series: [{ name: '合作社', type: 'scatter', coordinateSystem: 'bmap', zlevel: 9, z: 9, data: [{ name: '12313123', options: { obj1: '哈哈' }, value: [117.208714, 37.325947, 1] }] }, { name: '涉农企业', type: 'scatter', coordinateSystem: 'bmap', zlevel: 9, z: 9, data: [{ name: '3435535', options: { obj1: '啦啦啦' }, value: [117.328714, 37.325947, 1] }] } ] }); // 获得百度地图实例对象 var bmap = myChart.getModel().getComponent('bmap').getBMap(); //地图图层切换控件 bmap.addControl(new BMap.MapTypeControl()); // 设置中心点及缩放级别 bmap.centerAndZoom(new BMap.Point(117.208714, 37.325947), 10); // 开启滚轮缩放 bmap.enableScrollWheelZoom(); //设置地图默认图层(实景) bmap.setMapType(BMAP_HYBRID_MAP);//BMAP_NORMAL_MAP(展示普通街道视图)/BMAP_PERSPECTIVE_MAP(展示透视图像视图)/BMAP_SATELLITE_MAP(展示卫星视图)/BMAP_HYBRID_MAP(展示卫星和路网的混合视图) //缩放大小限制 bmap.setMinZoom(8); bmap.setMaxZoom(12); // 行政区划展示 function getBoundary(data) { var bdary = new BMap.Boundary(); // 这里填写要展示的行政区划 bdary.get(data, function (rs) { //获取行政区域 var count = rs.boundaries.length; //行政区域的点有多少个 if (count === 0) { alert('未能获取当前输入行政区域'); return; } var pointArray = []; for (var i = 0; i < count; i++) { var ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 2, strokeColor: "#ff0000" }); //建立多边形覆盖物 bmap.addOverlay(ply); //添加覆盖物 pointArray = pointArray.concat(ply.getPath()); } bmap.setViewport(pointArray); //调整视野 }); } getBoundary("商河县"); // 这里传参可同时渲染多个省市的行政区划 // getBoundary("临邑县");
其实我认为核心就是通过Echarts获取百度地图的实例化对象(var bmap = myChart.getModel().getComponent('bmap').getBMap(););其他的也就是简单的看文档的过程。
js代码里的注释应该能帮助大家上手使用了,如果大家有更好的解决方案,希望给我提些意见。
相关引入的文件github上都能直接获取到,就不一一贴出来了,希望对大家有帮助。