項目中有一頁是顯示全國地圖, echarts官網的地圖實例里,有一個模擬遷徙的實例,比較符合項目需求.所以大部分配置項是參考此實例.
angular 就不過多介紹了, Google出品的mvc(或者說mvvm)框架. 雙向數據綁定,指令等特性很好用.
echarts 是百度的開源圖表插件, 功能豐富,展示形式多樣.
首先定義一個directive
.directive('echartsMap', ['$timeout', function ($timeout) { return { restrict: 'EA', replace: true, scope: { option: '=echartsOption' //這里的作用是數據綁定 }, template: '<div style="height:700px;"></div>', // 自定義圖表寬高 link: function (scope, element, attrs, ctrl) { // 以下是echarts 初始化方法, 官網有 require.config({ paths: { echarts: 'js/lib/echarts' }, packages: [ { name: 'BMap', location: 'js/lib/echarts/src', main: 'main' } ] }); require( [ 'echarts', 'BMap', 'echarts/chart/map' ], function(echarts, BMapExtension) { $timeout(function () { // 這里用一個$timeout 0, 是等 dom 加載完畢
var BMapExt = new BMapExtension(element[0], BMap, echarts, require('zrender')); // 這里的elemet[0] 就是這個指令本身,或者指令所在標簽
var map = BMapExt.getMap();
var container = BMapExt.getEchartsContainer();
var startPoint = { //初始化坐標
x: 104.114129,
y: 37.550339
};
var point = new BMap.Point(startPoint.x, startPoint.y);
map.centerAndZoom(point, 5);
map.enableScrollWheelZoom(true);
var myChart = BMapExt.initECharts(container); // echarts實例
window.onresize = myChart.onresize;
BMapExt.setOption(scope.option, true);
}, 0); }); } }; }])
view 里
<echarts-map echarts-option="ecOption"></echarts-map>
controller 里
$scope.ecOption = { //這里寫 echarts 的options 就可以了 };
這樣,最基本的地圖就可以顯示出來了.
.