Enford 5 vuotta sitten
vanhempi
commit
61dd79e9e8

+ 617 - 0
src/main/webapp/static/echarts-2.2.7/extension/BMap/doc/BMap.html

@@ -0,0 +1,617 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="ECharts">
+    <meta name="author" content="kener.linfeng@gmail.com">
+    <title>ECharts · Example</title>
+
+    <link rel="shortcut icon" href="../../../doc/asset/ico/favicon.png">
+
+    <link href="../../../doc/asset/css/font-awesome.min.css" rel="stylesheet">
+    <link href="../../../doc/asset/css/bootstrap.css" rel="stylesheet">
+    <link href="../../../doc/asset/css/carousel.css" rel="stylesheet">
+    <link href="../../../doc/asset/css/echartsHome.css" rel="stylesheet">
+    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+
+    <script src="../../../doc/example/www/js/echarts.js"></script>
+    <script src="../../../doc/asset/js/codemirror.js"></script>
+    <script src="../../../doc/asset/js/javascript.js"></script>
+
+    <link href="../../../doc/asset/css/codemirror.css" rel="stylesheet">
+    <link href="../../../doc/asset/css/monokai.css" rel="stylesheet">
+
+    <style type="text/css">
+        .CodeMirror {
+            height: 550px;
+        }
+    </style>
+</head>
+
+<body>
+    <!-- Fixed navbar -->
+    <div class="navbar navbar-default navbar-fixed-top" role="navigation" id="head"></div>
+
+
+    <div class="container-fluid">
+        <div class="row-fluid example">
+            <div id="sidebar-code" class="col-md-4">
+                <div class="well sidebar-nav">
+                    <div class="nav-header"><a href="#" onclick="autoResize()" class="glyphicon glyphicon-resize-full" id ="icon-resize" ></a>option</div>
+                    <textarea id="code" name="code">
+// 初始化地图
+var BMapExt = new BMapExtension(domMain, BMap, require('echarts'), require('zrender'));
+var map = BMapExt.getMap();
+var container = BMapExt.getEchartsContainer();
+var point = new BMap.Point(startPoint.x, startPoint.y);
+map.centerAndZoom(point, 5);
+map.enableScrollWheelZoom(true);
+
+
+
+option = {
+    color: ['gold','aqua','lime'],
+    title : {
+        text: '模拟迁徙',
+        subtext:'数据纯属虚构',
+        x:'right'
+    },
+    tooltip : {
+        trigger: 'item',
+        formatter: function (v) {
+            return v[1].replace(':', ' > ');
+        }
+    },
+    legend: {
+        orient: 'vertical',
+        x:'left',
+        data:['北京', '上海', '广州'],
+        selectedMode: 'single',
+        selected:{
+            '上海' : false,
+            '广州' : false
+        }
+    },
+    toolbox: {
+        show : true,
+        orient : 'vertical',
+        x: 'right',
+        y: 'center',
+        feature : {
+            mark : {show: true},
+            dataView : {show: true, readOnly: false},
+            restore : {show: true},
+            saveAsImage : {show: true}
+        }
+    },
+    dataRange: {
+        min : 0,
+        max : 100,
+        y: '60%',
+        calculable : true,
+        color: ['#ff3333', 'orange', 'yellow','lime','aqua']
+    },
+    series : [
+        {
+            name:'北京',
+            type:'map',
+            mapType: 'none',
+            data:[],
+            geoCoord: {
+                '上海': [121.4648,31.2891],
+                '东莞': [113.8953,22.901],
+                '东营': [118.7073,37.5513],
+                '中山': [113.4229,22.478],
+                '临汾': [111.4783,36.1615],
+                '临沂': [118.3118,35.2936],
+                '丹东': [124.541,40.4242],
+                '丽水': [119.5642,28.1854],
+                '乌鲁木齐': [87.9236,43.5883],
+                '佛山': [112.8955,23.1097],
+                '保定': [115.0488,39.0948],
+                '兰州': [103.5901,36.3043],
+                '包头': [110.3467,41.4899],
+                '北京': [116.4551,40.2539],
+                '北海': [109.314,21.6211],
+                '南京': [118.8062,31.9208],
+                '南宁': [108.479,23.1152],
+                '南昌': [116.0046,28.6633],
+                '南通': [121.1023,32.1625],
+                '厦门': [118.1689,24.6478],
+                '台州': [121.1353,28.6688],
+                '合肥': [117.29,32.0581],
+                '呼和浩特': [111.4124,40.4901],
+                '咸阳': [108.4131,34.8706],
+                '哈尔滨': [127.9688,45.368],
+                '唐山': [118.4766,39.6826],
+                '嘉兴': [120.9155,30.6354],
+                '大同': [113.7854,39.8035],
+                '大连': [122.2229,39.4409],
+                '天津': [117.4219,39.4189],
+                '太原': [112.3352,37.9413],
+                '威海': [121.9482,37.1393],
+                '宁波': [121.5967,29.6466],
+                '宝鸡': [107.1826,34.3433],
+                '宿迁': [118.5535,33.7775],
+                '常州': [119.4543,31.5582],
+                '广州': [113.5107,23.2196],
+                '廊坊': [116.521,39.0509],
+                '延安': [109.1052,36.4252],
+                '张家口': [115.1477,40.8527],
+                '徐州': [117.5208,34.3268],
+                '德州': [116.6858,37.2107],
+                '惠州': [114.6204,23.1647],
+                '成都': [103.9526,30.7617],
+                '扬州': [119.4653,32.8162],
+                '承德': [117.5757,41.4075],
+                '拉萨': [91.1865,30.1465],
+                '无锡': [120.3442,31.5527],
+                '日照': [119.2786,35.5023],
+                '昆明': [102.9199,25.4663],
+                '杭州': [119.5313,29.8773],
+                '枣庄': [117.323,34.8926],
+                '柳州': [109.3799,24.9774],
+                '株洲': [113.5327,27.0319],
+                '武汉': [114.3896,30.6628],
+                '汕头': [117.1692,23.3405],
+                '江门': [112.6318,22.1484],
+                '沈阳': [123.1238,42.1216],
+                '沧州': [116.8286,38.2104],
+                '河源': [114.917,23.9722],
+                '泉州': [118.3228,25.1147],
+                '泰安': [117.0264,36.0516],
+                '泰州': [120.0586,32.5525],
+                '济南': [117.1582,36.8701],
+                '济宁': [116.8286,35.3375],
+                '海口': [110.3893,19.8516],
+                '淄博': [118.0371,36.6064],
+                '淮安': [118.927,33.4039],
+                '深圳': [114.5435,22.5439],
+                '清远': [112.9175,24.3292],
+                '温州': [120.498,27.8119],
+                '渭南': [109.7864,35.0299],
+                '湖州': [119.8608,30.7782],
+                '湘潭': [112.5439,27.7075],
+                '滨州': [117.8174,37.4963],
+                '潍坊': [119.0918,36.524],
+                '烟台': [120.7397,37.5128],
+                '玉溪': [101.9312,23.8898],
+                '珠海': [113.7305,22.1155],
+                '盐城': [120.2234,33.5577],
+                '盘锦': [121.9482,41.0449],
+                '石家庄': [114.4995,38.1006],
+                '福州': [119.4543,25.9222],
+                '秦皇岛': [119.2126,40.0232],
+                '绍兴': [120.564,29.7565],
+                '聊城': [115.9167,36.4032],
+                '肇庆': [112.1265,23.5822],
+                '舟山': [122.2559,30.2234],
+                '苏州': [120.6519,31.3989],
+                '莱芜': [117.6526,36.2714],
+                '菏泽': [115.6201,35.2057],
+                '营口': [122.4316,40.4297],
+                '葫芦岛': [120.1575,40.578],
+                '衡水': [115.8838,37.7161],
+                '衢州': [118.6853,28.8666],
+                '西宁': [101.4038,36.8207],
+                '西安': [109.1162,34.2004],
+                '贵阳': [106.6992,26.7682],
+                '连云港': [119.1248,34.552],
+                '邢台': [114.8071,37.2821],
+                '邯郸': [114.4775,36.535],
+                '郑州': [113.4668,34.6234],
+                '鄂尔多斯': [108.9734,39.2487],
+                '重庆': [107.7539,30.1904],
+                '金华': [120.0037,29.1028],
+                '铜川': [109.0393,35.1947],
+                '银川': [106.3586,38.1775],
+                '镇江': [119.4763,31.9702],
+                '长春': [125.8154,44.2584],
+                '长沙': [113.0823,28.2568],
+                '长治': [112.8625,36.4746],
+                '阳泉': [113.4778,38.0951],
+                '青岛': [120.4651,36.3373],
+                '韶关': [113.7964,24.7028]
+            },
+
+            markLine : {
+                smooth:true,
+                effect : {
+                    show: true,
+                    scaleSize: 1,
+                    period: 30,
+                    color: '#fff',
+                    shadowBlur: 10
+                },
+                itemStyle : {
+                    normal: {
+                        borderWidth:1,
+                        lineStyle: {
+                            type: 'solid',
+                            shadowBlur: 10
+                        }
+                    }
+                },
+                data : [
+                    [{name:'北京'}, {name:'上海',value:95}],
+                    [{name:'北京'}, {name:'广州',value:90}],
+                    [{name:'北京'}, {name:'大连',value:80}],
+                    [{name:'北京'}, {name:'南宁',value:70}],
+                    [{name:'北京'}, {name:'南昌',value:60}],
+                    [{name:'北京'}, {name:'拉萨',value:50}],
+                    [{name:'北京'}, {name:'长春',value:40}],
+                    [{name:'北京'}, {name:'包头',value:30}],
+                    [{name:'北京'}, {name:'重庆',value:20}],
+                    [{name:'北京'}, {name:'常州',value:10}]
+                ]
+            },
+            markPoint : {
+                symbol:'emptyCircle',
+                symbolSize : function (v){
+                    return 10 + v/10
+                },
+                effect : {
+                    show: true,
+                    shadowBlur : 0
+                },
+                itemStyle:{
+                    normal:{
+                        label:{show:false}
+                    }
+                },
+                data : [
+                    {name:'上海',value:95},
+                    {name:'广州',value:90},
+                    {name:'大连',value:80},
+                    {name:'南宁',value:70},
+                    {name:'南昌',value:60},
+                    {name:'拉萨',value:50},
+                    {name:'长春',value:40},
+                    {name:'包头',value:30},
+                    {name:'重庆',value:20},
+                    {name:'常州',value:10}
+                ]
+            }
+            
+        },
+        {
+            name:'上海',
+            type:'map',
+            mapType: 'none',
+            data:[],
+            markLine : {
+                smooth:true,
+                effect : {
+                    show: true,
+                    scaleSize: 1,
+                    period: 30,
+                    color: '#fff',
+                    shadowBlur: 10
+                },
+                itemStyle : {
+                    normal: {
+                        borderWidth:1,
+                        lineStyle: {
+                            type: 'solid',
+                            shadowBlur: 10
+                        }
+                    }
+                },
+                data : [
+                    [{name:'上海'},{name:'包头',value:95}],
+                    [{name:'上海'},{name:'昆明',value:90}],
+                    [{name:'上海'},{name:'广州',value:80}],
+                    [{name:'上海'},{name:'郑州',value:70}],
+                    [{name:'上海'},{name:'长春',value:60}],
+                    [{name:'上海'},{name:'重庆',value:50}],
+                    [{name:'上海'},{name:'长沙',value:40}],
+                    [{name:'上海'},{name:'北京',value:30}],
+                    [{name:'上海'},{name:'丹东',value:20}],
+                    [{name:'上海'},{name:'大连',value:10}]
+                ]
+            },
+            markPoint : {
+                symbol:'emptyCircle',
+                symbolSize : function (v){
+                    return 10 + v/10
+                },
+                effect : {
+                    show: true,
+                    shadowBlur : 0
+                },
+                itemStyle:{
+                    normal:{
+                        label:{show:false}
+                    }
+                },
+                data : [
+                    {name:'包头',value:95},
+                    {name:'昆明',value:90},
+                    {name:'广州',value:80},
+                    {name:'郑州',value:70},
+                    {name:'长春',value:60},
+                    {name:'重庆',value:50},
+                    {name:'长沙',value:40},
+                    {name:'北京',value:30},
+                    {name:'丹东',value:20},
+                    {name:'大连',value:10}
+                ]
+            }
+        },
+        {
+            name:'广州',
+            type:'map',
+            mapType: 'none',
+            data:[],
+            markLine : {
+                smooth:true,
+                effect : {
+                    show: true,
+                    scaleSize: 1,
+                    period: 30,
+                    color: '#fff',
+                    shadowBlur: 10
+                },
+                itemStyle : {
+                    normal: {
+                        borderWidth:1,
+                        lineStyle: {
+                            type: 'solid',
+                            shadowBlur: 10
+                        }
+                    }
+                },
+                data : [
+                    [{name:'广州'},{name:'福州',value:95}],
+                    [{name:'广州'},{name:'太原',value:90}],
+                    [{name:'广州'},{name:'长春',value:80}],
+                    [{name:'广州'},{name:'重庆',value:70}],
+                    [{name:'广州'},{name:'西安',value:60}],
+                    [{name:'广州'},{name:'成都',value:50}],
+                    [{name:'广州'},{name:'常州',value:40}],
+                    [{name:'广州'},{name:'北京',value:30}],
+                    [{name:'广州'},{name:'北海',value:20}],
+                    [{name:'广州'},{name:'海口',value:10}]
+                ]
+            },
+            markPoint : {
+                symbol:'emptyCircle',
+                symbolSize : function (v){
+                    return 10 + v/10
+                },
+                effect : {
+                    show: true,
+                    shadowBlur : 0
+                },
+                itemStyle:{
+                    normal:{
+                        label:{show:false}
+                    }
+                },
+                data : [
+                    {name:'福州',value:95},
+                    {name:'太原',value:90},
+                    {name:'长春',value:80},
+                    {name:'重庆',value:70},
+                    {name:'西安',value:60},
+                    {name:'成都',value:50},
+                    {name:'常州',value:40},
+                    {name:'北京',value:30},
+                    {name:'北海',value:20},
+                    {name:'海口',value:10}
+                ]
+            }
+        },
+        {
+            name:'全国',
+            type:'map',
+            mapType: 'none',
+            data:[],
+            markLine : {
+                smooth:true,
+                symbol: ['none', 'circle'],  
+                symbolSize : 1,
+                itemStyle : {
+                    normal: {
+                        color:'#fff',
+                        borderWidth:1,
+                        borderColor:'rgba(30,144,255,0.5)'
+                    }
+                },
+                data : [
+                    [{name:'北京'},{name:'包头'}],
+                    [{name:'北京'},{name:'北海'}],
+                    [{name:'北京'},{name:'广州'}],
+                    [{name:'北京'},{name:'郑州'}],
+                    [{name:'北京'},{name:'长春'}],
+                    [{name:'北京'},{name:'长治'}],
+                    [{name:'北京'},{name:'重庆'}],
+                    [{name:'北京'},{name:'长沙'}],
+                    [{name:'北京'},{name:'成都'}],
+                    [{name:'北京'},{name:'常州'}],
+                    [{name:'北京'},{name:'丹东'}],
+                    [{name:'北京'},{name:'大连'}],
+                    [{name:'北京'},{name:'东营'}],
+                    [{name:'北京'},{name:'延安'}],
+                    [{name:'北京'},{name:'福州'}],
+                    [{name:'北京'},{name:'海口'}],
+                    [{name:'北京'},{name:'呼和浩特'}],
+                    [{name:'北京'},{name:'合肥'}],
+                    [{name:'北京'},{name:'杭州'}],
+                    [{name:'北京'},{name:'哈尔滨'}],
+                    [{name:'北京'},{name:'舟山'}],
+                    [{name:'北京'},{name:'银川'}],
+                    [{name:'北京'},{name:'衢州'}],
+                    [{name:'北京'},{name:'南昌'}],
+                    [{name:'北京'},{name:'昆明'}],
+                    [{name:'北京'},{name:'贵阳'}],
+                    [{name:'北京'},{name:'兰州'}],
+                    [{name:'北京'},{name:'拉萨'}],
+                    [{name:'北京'},{name:'连云港'}],
+                    [{name:'北京'},{name:'临沂'}],
+                    [{name:'北京'},{name:'柳州'}],
+                    [{name:'北京'},{name:'宁波'}],
+                    [{name:'北京'},{name:'南京'}],
+                    [{name:'北京'},{name:'南宁'}],
+                    [{name:'北京'},{name:'南通'}],
+                    [{name:'北京'},{name:'上海'}],
+                    [{name:'北京'},{name:'沈阳'}],
+                    [{name:'北京'},{name:'西安'}],
+                    [{name:'北京'},{name:'汕头'}],
+                    [{name:'北京'},{name:'深圳'}],
+                    [{name:'北京'},{name:'青岛'}],
+                    [{name:'北京'},{name:'济南'}],
+                    [{name:'北京'},{name:'太原'}],
+                    [{name:'北京'},{name:'乌鲁木齐'}],
+                    [{name:'北京'},{name:'潍坊'}],
+                    [{name:'北京'},{name:'威海'}],
+                    [{name:'北京'},{name:'温州'}],
+                    [{name:'北京'},{name:'武汉'}],
+                    [{name:'北京'},{name:'无锡'}],
+                    [{name:'北京'},{name:'厦门'}],
+                    [{name:'北京'},{name:'西宁'}],
+                    [{name:'北京'},{name:'徐州'}],
+                    [{name:'北京'},{name:'烟台'}],
+                    [{name:'北京'},{name:'盐城'}],
+                    [{name:'北京'},{name:'珠海'}],
+                    [{name:'上海'},{name:'包头'}],
+                    [{name:'上海'},{name:'北海'}],
+                    [{name:'上海'},{name:'广州'}],
+                    [{name:'上海'},{name:'郑州'}],
+                    [{name:'上海'},{name:'长春'}],
+                    [{name:'上海'},{name:'重庆'}],
+                    [{name:'上海'},{name:'长沙'}],
+                    [{name:'上海'},{name:'成都'}],
+                    [{name:'上海'},{name:'丹东'}],
+                    [{name:'上海'},{name:'大连'}],
+                    [{name:'上海'},{name:'福州'}],
+                    [{name:'上海'},{name:'海口'}],
+                    [{name:'上海'},{name:'呼和浩特'}],
+                    [{name:'上海'},{name:'合肥'}],
+                    [{name:'上海'},{name:'哈尔滨'}],
+                    [{name:'上海'},{name:'舟山'}],
+                    [{name:'上海'},{name:'银川'}],
+                    [{name:'上海'},{name:'南昌'}],
+                    [{name:'上海'},{name:'昆明'}],
+                    [{name:'上海'},{name:'贵阳'}],
+                    [{name:'上海'},{name:'兰州'}],
+                    [{name:'上海'},{name:'拉萨'}],
+                    [{name:'上海'},{name:'连云港'}],
+                    [{name:'上海'},{name:'临沂'}],
+                    [{name:'上海'},{name:'柳州'}],
+                    [{name:'上海'},{name:'宁波'}],
+                    [{name:'上海'},{name:'南宁'}],
+                    [{name:'上海'},{name:'北京'}],
+                    [{name:'上海'},{name:'沈阳'}],
+                    [{name:'上海'},{name:'秦皇岛'}],
+                    [{name:'上海'},{name:'西安'}],
+                    [{name:'上海'},{name:'石家庄'}],
+                    [{name:'上海'},{name:'汕头'}],
+                    [{name:'上海'},{name:'深圳'}],
+                    [{name:'上海'},{name:'青岛'}],
+                    [{name:'上海'},{name:'济南'}],
+                    [{name:'上海'},{name:'天津'}],
+                    [{name:'上海'},{name:'太原'}],
+                    [{name:'上海'},{name:'乌鲁木齐'}],
+                    [{name:'上海'},{name:'潍坊'}],
+                    [{name:'上海'},{name:'威海'}],
+                    [{name:'上海'},{name:'温州'}],
+                    [{name:'上海'},{name:'武汉'}],
+                    [{name:'上海'},{name:'厦门'}],
+                    [{name:'上海'},{name:'西宁'}],
+                    [{name:'上海'},{name:'徐州'}],
+                    [{name:'上海'},{name:'烟台'}],
+                    [{name:'上海'},{name:'珠海'}],
+                    [{name:'广州'},{name:'北海'}],
+                    [{name:'广州'},{name:'郑州'}],
+                    [{name:'广州'},{name:'长春'}],
+                    [{name:'广州'},{name:'重庆'}],
+                    [{name:'广州'},{name:'长沙'}],
+                    [{name:'广州'},{name:'成都'}],
+                    [{name:'广州'},{name:'常州'}],
+                    [{name:'广州'},{name:'大连'}],
+                    [{name:'广州'},{name:'福州'}],
+                    [{name:'广州'},{name:'海口'}],
+                    [{name:'广州'},{name:'呼和浩特'}],
+                    [{name:'广州'},{name:'合肥'}],
+                    [{name:'广州'},{name:'杭州'}],
+                    [{name:'广州'},{name:'哈尔滨'}],
+                    [{name:'广州'},{name:'舟山'}],
+                    [{name:'广州'},{name:'银川'}],
+                    [{name:'广州'},{name:'南昌'}],
+                    [{name:'广州'},{name:'昆明'}],
+                    [{name:'广州'},{name:'贵阳'}],
+                    [{name:'广州'},{name:'兰州'}],
+                    [{name:'广州'},{name:'拉萨'}],
+                    [{name:'广州'},{name:'连云港'}],
+                    [{name:'广州'},{name:'临沂'}],
+                    [{name:'广州'},{name:'柳州'}],
+                    [{name:'广州'},{name:'宁波'}],
+                    [{name:'广州'},{name:'南京'}],
+                    [{name:'广州'},{name:'南宁'}],
+                    [{name:'广州'},{name:'南通'}],
+                    [{name:'广州'},{name:'北京'}],
+                    [{name:'广州'},{name:'上海'}],
+                    [{name:'广州'},{name:'沈阳'}],
+                    [{name:'广州'},{name:'西安'}],
+                    [{name:'广州'},{name:'石家庄'}],
+                    [{name:'广州'},{name:'汕头'}],
+                    [{name:'广州'},{name:'青岛'}],
+                    [{name:'广州'},{name:'济南'}],
+                    [{name:'广州'},{name:'天津'}],
+                    [{name:'广州'},{name:'太原'}],
+                    [{name:'广州'},{name:'乌鲁木齐'}],
+                    [{name:'广州'},{name:'温州'}],
+                    [{name:'广州'},{name:'武汉'}],
+                    [{name:'广州'},{name:'无锡'}],
+                    [{name:'广州'},{name:'厦门'}],
+                    [{name:'广州'},{name:'西宁'}],
+                    [{name:'广州'},{name:'徐州'}],
+                    [{name:'广州'},{name:'烟台'}],
+                    [{name:'广州'},{name:'盐城'}]
+                ]
+            }
+        }
+    ]
+};
+
+if (myChart && myChart.dispose) {
+    myChart.dispose();
+}
+myChart = BMapExt.initECharts(container, curTheme);
+window.onresize = myChart.resize;
+BMapExt.setOption(option, true)
+                    </textarea>
+              </div><!--/.well -->
+            </div><!--/span-->
+            <div id="graphic" class="col-md-8">
+                <div id="main" class="main" style="height: 530px;"></div>
+                <div>
+                    <button type="button" class="btn btn-sm btn-success" onclick="refresh(true)">刷 新</button>
+                    <span class="text-primary">切换主题</span>
+                    <select id="theme-select"></select>
+
+                    <span id='wrong-message' style="color:red"></span>
+                </div>
+            </div><!--/span-->
+        </div><!--/row-->
+        
+        </div><!--/.fluid-container-->
+
+    <footer id="footer"></footer>
+    <!-- Le javascript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script src="../../../doc/asset/js/jquery.min.js"></script>
+    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script>
+    <script type="text/javascript" src="../../../doc/asset/js/echartsHome.js"></script>
+    <script src="../../../doc/asset/js/bootstrap.min.js"></script>
+    <script src="./BMap.js"></script>
+</body>
+</html>

+ 213 - 0
src/main/webapp/static/echarts-2.2.7/extension/BMap/doc/BMap.js

@@ -0,0 +1,213 @@
+var myChart;
+var domCode = document.getElementById('sidebar-code');
+var domGraphic = document.getElementById('graphic');
+var domMain = document.getElementById('main');
+var domMessage = document.getElementById('wrong-message');
+var iconResize = document.getElementById('icon-resize');
+var needRefresh = false;
+
+var enVersion = location.hash.indexOf('-en') != -1;
+var hash = location.hash.replace('-en','');
+hash = hash.replace('#','') || (needMap() ? 'default' : 'macarons');
+hash += enVersion ? '-en' : '';
+
+var startPoint = {
+    x: 104.114129,
+    y: 37.550339
+};
+var BMapExtension;
+
+var curTheme;
+function requireCallback (ec, defaultTheme) {
+    curTheme = themeSelector ? defaultTheme : {};
+    echarts = ec;
+    refresh();
+}
+
+var themeSelector = $('#theme-select');
+if (themeSelector) {
+    themeSelector.html(
+        '<option selected="true" name="macarons">macarons</option>' 
+        + '<option name="infographic">infographic</option>'
+        + '<option name="shine">shine</option>'
+        + '<option name="dark">dark</option>'
+        + '<option name="blue">blue</option>'
+        + '<option name="green">green</option>'
+        + '<option name="red">red</option>'
+        + '<option name="gray">gray</option>'
+        + '<option name="helianthus">helianthus</option>'
+        + '<option name="default">default</option>'
+    );
+    $(themeSelector).on('change', function(){
+        selectChange($(this).val());
+    });
+    function selectChange(value){
+        var theme = value;
+        myChart.showLoading();
+        $(themeSelector).val(theme);
+        if (theme != 'default') {
+            window.location.hash = value + (enVersion ? '-en' : '');
+            require(['http://echarts.baidu.com/doc/example/theme/' + theme], function(tarTheme){
+                curTheme = tarTheme;
+                setTimeout(refreshTheme, 500);
+            })
+        }
+        else {
+            window.location.hash = enVersion ? '-en' : '';
+            curTheme = {};
+            setTimeout(refreshTheme, 500);
+        }
+    }
+    function refreshTheme(){
+        myChart.hideLoading();
+        myChart.setTheme(curTheme);
+    }
+    if ($(themeSelector).val(hash.replace('-en', '')).val() != hash.replace('-en', '')) {
+        $(themeSelector).val('macarons');
+        hash = 'macarons' + enVersion ? '-en' : '';
+        window.location.hash = hash;
+    }
+}
+
+function autoResize() {
+    if ($(iconResize).hasClass('glyphicon-resize-full')) {
+        focusCode();
+        iconResize.className = 'glyphicon glyphicon-resize-small';
+    }
+    else {
+        focusGraphic();
+        iconResize.className = 'glyphicon glyphicon-resize-full';
+    }
+}
+
+function focusCode() {
+    domCode.className = 'col-md-8 ani';
+    domGraphic.className = 'col-md-4 ani';
+}
+
+function focusGraphic() {
+    domCode.className = 'col-md-4 ani';
+    domGraphic.className = 'col-md-8 ani';
+    if (needRefresh) {
+        myChart.showLoading();
+        setTimeout(refresh, 1000);
+    }
+}
+
+var editor = CodeMirror.fromTextArea(
+    document.getElementById("code"),
+    { lineNumbers: true }
+);
+editor.setOption("theme", 'monokai');
+
+
+editor.on('change', function(){needRefresh = true;});
+
+function refresh(isBtnRefresh){
+    require(['BMap'], function(mapEx){
+        BMapExtension = mapEx;
+        if (isBtnRefresh) {
+            needRefresh = true;
+            focusGraphic();
+            return;
+        }
+        needRefresh = false;
+        
+        domMessage.innerHTML = '';
+        (new Function(editor.doc.getValue()))();
+    });
+}
+
+function needMap() {
+    var href = location.href;
+    return href.indexOf('Map') != -1
+           || href.indexOf('mix3') != -1
+           || href.indexOf('mix5') != -1
+           || href.indexOf('dataRange') != -1;
+
+}
+
+var echarts;
+var developMode = false;
+
+if (developMode) {
+    window.esl = null;
+    window.define = null;
+    window.require = null;
+    (function () {
+        var script = document.createElement('script');
+        script.async = true;
+
+        script.src = '../../../doc/asset/js/esl/esl.js';
+        if (script.readyState) {
+            script.onreadystatechange = fireLoad;
+        }
+        else {
+            script.onload = fireLoad;
+        }
+        (document.getElementsByTagName('head')[0] || document.body).appendChild(script);
+        
+        function fireLoad() {
+            script.onload = script.onreadystatechange = null;
+            setTimeout(loadedListener,100);
+        }
+        function loadedListener() {
+            // for develop
+            require.config({
+                packages: [
+                    {
+                        name: 'echarts',
+                        location: '../../../src',
+                        main: 'echarts'
+                    },
+                    {
+                        name: 'zrender',
+                        //location: 'http://ecomfe.github.io/zrender/src',
+                        location: '../../../../zrender/src',
+                        main: 'zrender'
+                    },
+                    {
+                        name: 'BMap',
+                        location: '../src',
+                        main: 'main'
+                    }
+                ]
+            });
+            launchExample();
+        }
+    })();
+}
+else {
+    require.config({
+        paths: {
+            echarts: '../../../doc/example/www/js'
+        },
+        packages: [
+            {
+                name: 'BMap',
+                location: '../src',
+                main: 'main'
+            }
+        ]
+    });
+    launchExample();
+}
+
+var isExampleLaunched;
+function launchExample() {
+    if (isExampleLaunched) {
+        return;
+    }
+
+    // 按需加载
+    isExampleLaunched = 1;
+    require(
+        [
+            'echarts',
+            'http://echarts.baidu.com/doc/example/theme/' + hash.replace('-en', ''),
+            needMap() ? 'echarts/chart/map' : 'echarts'
+        ],
+        requireCallback
+    );
+}
+

+ 123 - 0
src/main/webapp/static/echarts-2.2.7/extension/BMap/doc/doc.html

@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang="zh-cn">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta name="description" content="ECharts">
+        <title>ECharts · BMap</title>
+        <link href="../../../doc/asset/css/echartsHome.css" rel="stylesheet">
+        <style type="text/css">
+            body {
+                margin: 0;
+                padding: 50px;
+            }
+            pre {
+                display: block;
+                padding: 9.5px;
+                margin: 0 0 10px;
+                font-size: 13px;
+                line-height: 1.42857143;
+                color: #333;
+                word-break: break-all;
+                word-wrap: break-word;
+                background-color: #f5f5f5;
+                border: 1px solid #ccc;
+                border-radius: 4px;
+            }
+        </style>
+    </head>
+    <body>
+        <h3>简介</h3>
+        <p>BMapExt是在Echarts基础上使用百度地图API进行地图绘制,使用的时候除了需要Echarts的相关知识外,还需要对百度地图API(<a target='_blank' href='http://developer.baidu.com/map/index.php?title=jspopular'>官网</a>)有所了解</p>
+        <h3>实例方法</h3>
+        <table cellspacing="0" class="ADoc_table full">
+            <tr>
+                <th> 名称 </th>
+                <th> 参数 </th>
+                <th> 描述 </th>
+            </tr>
+            <tr>
+                <td> <b>{HTMLElement}</b> getEchartsContainer </td>
+                <td> 无 </td>
+                <td> 获取扩展为Echarts生成的容器 </td>
+            </tr>
+            <tr>
+                <td> <b>{BMap.Map} </b> getMap </td>
+                <td> 无 </td>
+                <td> 获取扩展使用的百度地图实例 </td>
+            </tr>
+            <tr>
+                <td> <b>{ECharts}</b> initECharts </td>
+                <td> 参数同Echarts实例的init </td>
+                <td> 初始化echarts实例,参数完全使用<a target="_blank" href="../../../doc/doc.html#初始化" >ECharts实例的init()</a>, 返回扩展使用的Echarts实例 </td>
+            </tr>
+            <tr>
+                <td> <b>{ECharts}</b> getECharts </td>
+                <td> 无 </td>
+                <td> 获取扩展使用的Echarts实例 </td>
+            </tr>
+            <tr>
+                <td> setOption </td>
+                <td>  参数同Echarts实例的setOption
+                </td>
+                <td>此方法会讲option中的series中的markPoint、markLine的坐标重新计算为与百度地图匹配的坐标,<a target="_blank" href="../../../doc/doc.html#实例方法">Echarts的实例方法</a></td>
+            </tr>
+            <tr>
+                <td> refresh </td>
+                <td> 无 </td>
+                <td> 页面刷新 </td>
+            </tr>
+            <tr>
+                <td> <b>{Array.&lt;number&gt;}</b> getMapOffset </td>
+                <td> 无 </td>
+                <td> 获取扩展当前的地图偏移量 </td>
+            </tr>
+            <tr>
+                <td> <b>{Array.&lt;number&gt;}</b> geoCoord2Pixel </td>
+                <td> <b>{Array.&lt;number&gt;}</b> geoCoord </td>
+                <td> 经纬度坐标转换为像素坐标 </td>
+            </tr>
+            <tr>
+                <td> <b>{Array.&lt;number&gt;}</b> pixel2GeoCoord </td>
+                <td> <b>{Array.&lt;number&gt;}</b> pixel </td>
+                <td> 像素坐标转换成经纬度坐标 </td>
+            </tr>
+        </table>
+
+        <h3>如何使用</h3>
+        <p>1、引用Echarts、扩展、百度地图API</p>
+        <p>2、实例化扩展,传人容器、百度地图API的变量、echarts</p>
+        <p>3、获取扩展中使用的百度地图实例,进行地图操作</p>
+        <p>4、获取扩展生成Echarts容器</p>
+        <p>5、使用扩展初始化Echarts(initECharts),操作(setOption)</p>
+        <div class="code">
+                        <pre>
+        // 在这之前必须加装ECharts、百度地图API文件、引用扩展文件
+        var myBMapExt = new BMapExt($('#main')[0], BMap, echarts);
+        // 获取地图实例
+        var map = myBMapExt.getMap();
+
+        // 以下是地图的操作,详细api请前往百度地图API官网
+        var startPoint = {
+            x: 104.114129,
+            y: 37.550339
+        };
+        var point = new BMap.Point(startPoint.x, startPoint.y);
+        map.centerAndZoom(point, 5);
+        map.enableScrollWheelZoom(true);
+        // ....
+
+        // 配置option
+        var option = {...}
+        // 获取echarts的dom容器
+        var container = BMapExt.getEchartsContainer();
+        // 通过initEcharts初始化echarts并获取实例
+        var myChart = BMapExt.initECharts(container);
+        // 设置option
+        BMapExt.setOption(option);
+
+                        </pre>
+                    </div>
+    </body>
+</html>

+ 20 - 0
src/main/webapp/static/echarts-2.2.7/extension/BMap/doc/example.html

@@ -0,0 +1,20 @@
+<html>
+    <head>
+        <meta charset="utf-8">
+        <style type="text/css">
+            body {
+                margin: 0;
+            }
+            #main {
+                height: 100%;
+            }
+        </style>
+    </head>
+    <body>
+        <div id="main"></div>
+        <script src="../../../doc/example/www/js/echarts.js"></script>
+        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script>
+        <script src="../../../doc/asset/js/jquery.min.js"></script>
+        <script src="./example.js"></script>
+    </body>
+</html>

+ 720 - 0
src/main/webapp/static/echarts-2.2.7/extension/BMap/doc/example.js

@@ -0,0 +1,720 @@
+(function () {
+    require.config({
+        paths: {
+            echarts: '../../../doc/example/www/js'
+        },
+        packages: [
+            {
+                name: 'BMap',
+                location: '../src',
+                main: 'main'
+            }
+        ]
+    });
+
+    require(
+    [
+        'echarts',
+        'BMap',
+        'echarts/chart/map'
+    ],
+    function (echarts, BMapExtension) {
+        $('#main').css({
+            height:$('body').height(),
+            width: $('body').width()
+        });
+
+        // 初始化地图
+        var BMapExt = new BMapExtension($('#main')[0], BMap, echarts,{
+            enableMapClick: false
+        });
+        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);
+        // 地图自定义样式
+        map.setMapStyle({
+            styleJson: [
+                  {
+                       "featureType": "water",
+                       "elementType": "all",
+                       "stylers": {
+                            "color": "#044161"
+                       }
+                  },
+                  {
+                       "featureType": "land",
+                       "elementType": "all",
+                       "stylers": {
+                            "color": "#004981"
+                       }
+                  },
+                  {
+                       "featureType": "boundary",
+                       "elementType": "geometry",
+                       "stylers": {
+                            "color": "#064f85"
+                       }
+                  },
+                  {
+                       "featureType": "railway",
+                       "elementType": "all",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "highway",
+                       "elementType": "geometry",
+                       "stylers": {
+                            "color": "#004981"
+                       }
+                  },
+                  {
+                       "featureType": "highway",
+                       "elementType": "geometry.fill",
+                       "stylers": {
+                            "color": "#005b96",
+                            "lightness": 1
+                       }
+                  },
+                  {
+                       "featureType": "highway",
+                       "elementType": "labels",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "arterial",
+                       "elementType": "geometry",
+                       "stylers": {
+                            "color": "#004981"
+                       }
+                  },
+                  {
+                       "featureType": "arterial",
+                       "elementType": "geometry.fill",
+                       "stylers": {
+                            "color": "#00508b"
+                       }
+                  },
+                  {
+                       "featureType": "poi",
+                       "elementType": "all",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "green",
+                       "elementType": "all",
+                       "stylers": {
+                            "color": "#056197",
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "subway",
+                       "elementType": "all",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "manmade",
+                       "elementType": "all",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "local",
+                       "elementType": "all",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "arterial",
+                       "elementType": "labels",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  },
+                  {
+                       "featureType": "boundary",
+                       "elementType": "geometry.fill",
+                       "stylers": {
+                            "color": "#029fd4"
+                       }
+                  },
+                  {
+                       "featureType": "building",
+                       "elementType": "all",
+                       "stylers": {
+                            "color": "#1a5787"
+                       }
+                  },
+                  {
+                       "featureType": "label",
+                       "elementType": "all",
+                       "stylers": {
+                            "visibility": "off"
+                       }
+                  }
+            ]
+        });
+
+        option = {
+            color: ['gold','aqua','lime'],
+            title : {
+                text: '模拟迁徙',
+                subtext:'数据纯属虚构',
+                x:'center',
+                textStyle : {
+                    color: '#fff'
+                }
+            },
+            tooltip : {
+                trigger: 'item',
+                formatter: function (v) {
+                    return v[1].replace(':', ' > ');
+                }
+            },
+            legend: {
+                orient: 'vertical',
+                x:'left',
+                data:['北京', '上海', '广州'],
+                selectedMode: 'single',
+                selected:{
+                    '上海' : false,
+                    '广州' : false
+                },
+                textStyle : {
+                    color: '#fff'
+                }
+            },
+            toolbox: {
+                show : true,
+                orient : 'vertical',
+                x: 'right',
+                y: 'center',
+                feature : {
+                    mark : {show: true},
+                    dataView : {show: true, readOnly: false},
+                    restore : {show: true},
+                    saveAsImage : {show: true}
+                }
+            },
+            dataRange: {
+                min : 0,
+                max : 100,
+                range: {
+                    start: 10,
+                    end: 90
+                },
+                x: 'right',
+                calculable : true,
+                color: ['#ff3333', 'orange', 'yellow','lime','aqua'],
+                textStyle:{
+                    color:'#fff'
+                }
+            },
+            series : [
+                {
+                    name:'北京',
+                    type:'map',
+                    mapType: 'none',
+                    data:[],
+                    geoCoord: {
+                        '上海': [121.4648,31.2891],
+                        '东莞': [113.8953,22.901],
+                        '东营': [118.7073,37.5513],
+                        '中山': [113.4229,22.478],
+                        '临汾': [111.4783,36.1615],
+                        '临沂': [118.3118,35.2936],
+                        '丹东': [124.541,40.4242],
+                        '丽水': [119.5642,28.1854],
+                        '乌鲁木齐': [87.9236,43.5883],
+                        '佛山': [112.8955,23.1097],
+                        '保定': [115.0488,39.0948],
+                        '兰州': [103.5901,36.3043],
+                        '包头': [110.3467,41.4899],
+                        '北京': [116.4551,40.2539],
+                        '北海': [109.314,21.6211],
+                        '南京': [118.8062,31.9208],
+                        '南宁': [108.479,23.1152],
+                        '南昌': [116.0046,28.6633],
+                        '南通': [121.1023,32.1625],
+                        '厦门': [118.1689,24.6478],
+                        '台州': [121.1353,28.6688],
+                        '合肥': [117.29,32.0581],
+                        '呼和浩特': [111.4124,40.4901],
+                        '咸阳': [108.4131,34.8706],
+                        '哈尔滨': [127.9688,45.368],
+                        '唐山': [118.4766,39.6826],
+                        '嘉兴': [120.9155,30.6354],
+                        '大同': [113.7854,39.8035],
+                        '大连': [122.2229,39.4409],
+                        '天津': [117.4219,39.4189],
+                        '太原': [112.3352,37.9413],
+                        '威海': [121.9482,37.1393],
+                        '宁波': [121.5967,29.6466],
+                        '宝鸡': [107.1826,34.3433],
+                        '宿迁': [118.5535,33.7775],
+                        '常州': [119.4543,31.5582],
+                        '广州': [113.5107,23.2196],
+                        '廊坊': [116.521,39.0509],
+                        '延安': [109.1052,36.4252],
+                        '张家口': [115.1477,40.8527],
+                        '徐州': [117.5208,34.3268],
+                        '德州': [116.6858,37.2107],
+                        '惠州': [114.6204,23.1647],
+                        '成都': [103.9526,30.7617],
+                        '扬州': [119.4653,32.8162],
+                        '承德': [117.5757,41.4075],
+                        '拉萨': [91.1865,30.1465],
+                        '无锡': [120.3442,31.5527],
+                        '日照': [119.2786,35.5023],
+                        '昆明': [102.9199,25.4663],
+                        '杭州': [119.5313,29.8773],
+                        '枣庄': [117.323,34.8926],
+                        '柳州': [109.3799,24.9774],
+                        '株洲': [113.5327,27.0319],
+                        '武汉': [114.3896,30.6628],
+                        '汕头': [117.1692,23.3405],
+                        '江门': [112.6318,22.1484],
+                        '沈阳': [123.1238,42.1216],
+                        '沧州': [116.8286,38.2104],
+                        '河源': [114.917,23.9722],
+                        '泉州': [118.3228,25.1147],
+                        '泰安': [117.0264,36.0516],
+                        '泰州': [120.0586,32.5525],
+                        '济南': [117.1582,36.8701],
+                        '济宁': [116.8286,35.3375],
+                        '海口': [110.3893,19.8516],
+                        '淄博': [118.0371,36.6064],
+                        '淮安': [118.927,33.4039],
+                        '深圳': [114.5435,22.5439],
+                        '清远': [112.9175,24.3292],
+                        '温州': [120.498,27.8119],
+                        '渭南': [109.7864,35.0299],
+                        '湖州': [119.8608,30.7782],
+                        '湘潭': [112.5439,27.7075],
+                        '滨州': [117.8174,37.4963],
+                        '潍坊': [119.0918,36.524],
+                        '烟台': [120.7397,37.5128],
+                        '玉溪': [101.9312,23.8898],
+                        '珠海': [113.7305,22.1155],
+                        '盐城': [120.2234,33.5577],
+                        '盘锦': [121.9482,41.0449],
+                        '石家庄': [114.4995,38.1006],
+                        '福州': [119.4543,25.9222],
+                        '秦皇岛': [119.2126,40.0232],
+                        '绍兴': [120.564,29.7565],
+                        '聊城': [115.9167,36.4032],
+                        '肇庆': [112.1265,23.5822],
+                        '舟山': [122.2559,30.2234],
+                        '苏州': [120.6519,31.3989],
+                        '莱芜': [117.6526,36.2714],
+                        '菏泽': [115.6201,35.2057],
+                        '营口': [122.4316,40.4297],
+                        '葫芦岛': [120.1575,40.578],
+                        '衡水': [115.8838,37.7161],
+                        '衢州': [118.6853,28.8666],
+                        '西宁': [101.4038,36.8207],
+                        '西安': [109.1162,34.2004],
+                        '贵阳': [106.6992,26.7682],
+                        '连云港': [119.1248,34.552],
+                        '邢台': [114.8071,37.2821],
+                        '邯郸': [114.4775,36.535],
+                        '郑州': [113.4668,34.6234],
+                        '鄂尔多斯': [108.9734,39.2487],
+                        '重庆': [107.7539,30.1904],
+                        '金华': [120.0037,29.1028],
+                        '铜川': [109.0393,35.1947],
+                        '银川': [106.3586,38.1775],
+                        '镇江': [119.4763,31.9702],
+                        '长春': [125.8154,44.2584],
+                        '长沙': [113.0823,28.2568],
+                        '长治': [112.8625,36.4746],
+                        '阳泉': [113.4778,38.0951],
+                        '青岛': [120.4651,36.3373],
+                        '韶关': [113.7964,24.7028]
+                    },
+
+                    markLine : {
+                        smooth:true,
+                        effect : {
+                            show: true,
+                            scaleSize: 1,
+                            period: 30,
+                            color: '#fff',
+                            shadowBlur: 10
+                        },
+                        itemStyle : {
+                            normal: {
+                                borderWidth:1,
+                                lineStyle: {
+                                    type: 'solid',
+                                    shadowBlur: 10
+                                }
+                            }
+                        },
+                        data : [
+                            [{name:'北京'}, {name:'上海',value:95}],
+                            [{name:'北京'}, {name:'广州',value:90}],
+                            [{name:'北京'}, {name:'大连',value:80}],
+                            [{name:'北京'}, {name:'南宁',value:70}],
+                            [{name:'北京'}, {name:'南昌',value:60}],
+                            [{name:'北京'}, {name:'拉萨',value:50}],
+                            [{name:'北京'}, {name:'长春',value:40}],
+                            [{name:'北京'}, {name:'包头',value:30}],
+                            [{name:'北京'}, {name:'重庆',value:20}],
+                            [{name:'北京'}, {name:'常州',value:10}]
+                        ]
+                    },
+                    markPoint : {
+                        symbol:'emptyCircle',
+                        symbolSize : function (v){
+                            return 10 + v/10
+                        },
+                        effect : {
+                            show: true,
+                            shadowBlur : 0
+                        },
+                        itemStyle:{
+                            normal:{
+                                label:{show:false}
+                            }
+                        },
+                        data : [
+                            {name:'上海',value:95},
+                            {name:'广州',value:90},
+                            {name:'大连',value:80},
+                            {name:'南宁',value:70},
+                            {name:'南昌',value:60},
+                            {name:'拉萨',value:50},
+                            {name:'长春',value:40},
+                            {name:'包头',value:30},
+                            {name:'重庆',value:20},
+                            {name:'常州',value:10}
+                        ]
+                    }
+
+                },
+                {
+                    name:'上海',
+                    type:'map',
+                    mapType: 'none',
+                    data:[],
+                    markLine : {
+                        smooth:true,
+                        effect : {
+                            show: true,
+                            scaleSize: 1,
+                            period: 30,
+                            color: '#fff',
+                            shadowBlur: 10
+                        },
+                        itemStyle : {
+                            normal: {
+                                borderWidth:1,
+                                lineStyle: {
+                                    type: 'solid',
+                                    shadowBlur: 10
+                                }
+                            }
+                        },
+                        data : [
+                            [{name:'上海'},{name:'包头',value:95}],
+                            [{name:'上海'},{name:'昆明',value:90}],
+                            [{name:'上海'},{name:'广州',value:80}],
+                            [{name:'上海'},{name:'郑州',value:70}],
+                            [{name:'上海'},{name:'长春',value:60}],
+                            [{name:'上海'},{name:'重庆',value:50}],
+                            [{name:'上海'},{name:'长沙',value:40}],
+                            [{name:'上海'},{name:'北京',value:30}],
+                            [{name:'上海'},{name:'丹东',value:20}],
+                            [{name:'上海'},{name:'大连',value:10}]
+                        ]
+                    },
+                    markPoint : {
+                        symbol:'emptyCircle',
+                        symbolSize : function (v){
+                            return 10 + v/10
+                        },
+                        effect : {
+                            show: true,
+                            shadowBlur : 0
+                        },
+                        itemStyle:{
+                            normal:{
+                                label:{show:false}
+                            }
+                        },
+                        data : [
+                            {name:'包头',value:95},
+                            {name:'昆明',value:90},
+                            {name:'广州',value:80},
+                            {name:'郑州',value:70},
+                            {name:'长春',value:60},
+                            {name:'重庆',value:50},
+                            {name:'长沙',value:40},
+                            {name:'北京',value:30},
+                            {name:'丹东',value:20},
+                            {name:'大连',value:10}
+                        ]
+                    }
+                },
+                {
+                    name:'广州',
+                    type:'map',
+                    mapType: 'none',
+                    data:[],
+                    markLine : {
+                        smooth:true,
+                        effect : {
+                            show: true,
+                            scaleSize: 1,
+                            period: 30,
+                            color: '#fff',
+                            shadowBlur: 10
+                        },
+                        itemStyle : {
+                            normal: {
+                                borderWidth:1,
+                                lineStyle: {
+                                    type: 'solid',
+                                    shadowBlur: 10
+                                }
+                            }
+                        },
+                        data : [
+                            [{name:'广州'},{name:'福州',value:95}],
+                            [{name:'广州'},{name:'太原',value:90}],
+                            [{name:'广州'},{name:'长春',value:80}],
+                            [{name:'广州'},{name:'重庆',value:70}],
+                            [{name:'广州'},{name:'西安',value:60}],
+                            [{name:'广州'},{name:'成都',value:50}],
+                            [{name:'广州'},{name:'常州',value:40}],
+                            [{name:'广州'},{name:'北京',value:30}],
+                            [{name:'广州'},{name:'北海',value:20}],
+                            [{name:'广州'},{name:'海口',value:10}]
+                        ]
+                    },
+                    markPoint : {
+                        symbol:'emptyCircle',
+                        symbolSize : function (v){
+                            return 10 + v/10
+                        },
+                        effect : {
+                            show: true,
+                            shadowBlur : 0
+                        },
+                        itemStyle:{
+                            normal:{
+                                label:{show:false}
+                            }
+                        },
+                        data : [
+                            {name:'福州',value:95},
+                            {name:'太原',value:90},
+                            {name:'长春',value:80},
+                            {name:'重庆',value:70},
+                            {name:'西安',value:60},
+                            {name:'成都',value:50},
+                            {name:'常州',value:40},
+                            {name:'北京',value:30},
+                            {name:'北海',value:20},
+                            {name:'海口',value:10}
+                        ]
+                    }
+                },
+                {
+                    name:'全国',
+                    type:'map',
+                    mapType: 'none',
+                    data:[],
+                    markLine : {
+                        smooth:true,
+                        symbol: ['none', 'circle'],
+                        symbolSize : 1,
+                        itemStyle : {
+                            normal: {
+                                color:'#fff',
+                                borderWidth:1,
+                                borderColor:'rgba(30,144,255,0.5)'
+                            }
+                        },
+                        data : [
+                            [{name:'北京'},{name:'包头'}],
+                            [{name:'北京'},{name:'北海'}],
+                            [{name:'北京'},{name:'广州'}],
+                            [{name:'北京'},{name:'郑州'}],
+                            [{name:'北京'},{name:'长春'}],
+                            [{name:'北京'},{name:'长治'}],
+                            [{name:'北京'},{name:'重庆'}],
+                            [{name:'北京'},{name:'长沙'}],
+                            [{name:'北京'},{name:'成都'}],
+                            [{name:'北京'},{name:'常州'}],
+                            [{name:'北京'},{name:'丹东'}],
+                            [{name:'北京'},{name:'大连'}],
+                            [{name:'北京'},{name:'东营'}],
+                            [{name:'北京'},{name:'延安'}],
+                            [{name:'北京'},{name:'福州'}],
+                            [{name:'北京'},{name:'海口'}],
+                            [{name:'北京'},{name:'呼和浩特'}],
+                            [{name:'北京'},{name:'合肥'}],
+                            [{name:'北京'},{name:'杭州'}],
+                            [{name:'北京'},{name:'哈尔滨'}],
+                            [{name:'北京'},{name:'舟山'}],
+                            [{name:'北京'},{name:'银川'}],
+                            [{name:'北京'},{name:'衢州'}],
+                            [{name:'北京'},{name:'南昌'}],
+                            [{name:'北京'},{name:'昆明'}],
+                            [{name:'北京'},{name:'贵阳'}],
+                            [{name:'北京'},{name:'兰州'}],
+                            [{name:'北京'},{name:'拉萨'}],
+                            [{name:'北京'},{name:'连云港'}],
+                            [{name:'北京'},{name:'临沂'}],
+                            [{name:'北京'},{name:'柳州'}],
+                            [{name:'北京'},{name:'宁波'}],
+                            [{name:'北京'},{name:'南京'}],
+                            [{name:'北京'},{name:'南宁'}],
+                            [{name:'北京'},{name:'南通'}],
+                            [{name:'北京'},{name:'上海'}],
+                            [{name:'北京'},{name:'沈阳'}],
+                            [{name:'北京'},{name:'西安'}],
+                            [{name:'北京'},{name:'汕头'}],
+                            [{name:'北京'},{name:'深圳'}],
+                            [{name:'北京'},{name:'青岛'}],
+                            [{name:'北京'},{name:'济南'}],
+                            [{name:'北京'},{name:'太原'}],
+                            [{name:'北京'},{name:'乌鲁木齐'}],
+                            [{name:'北京'},{name:'潍坊'}],
+                            [{name:'北京'},{name:'威海'}],
+                            [{name:'北京'},{name:'温州'}],
+                            [{name:'北京'},{name:'武汉'}],
+                            [{name:'北京'},{name:'无锡'}],
+                            [{name:'北京'},{name:'厦门'}],
+                            [{name:'北京'},{name:'西宁'}],
+                            [{name:'北京'},{name:'徐州'}],
+                            [{name:'北京'},{name:'烟台'}],
+                            [{name:'北京'},{name:'盐城'}],
+                            [{name:'北京'},{name:'珠海'}],
+                            [{name:'上海'},{name:'包头'}],
+                            [{name:'上海'},{name:'北海'}],
+                            [{name:'上海'},{name:'广州'}],
+                            [{name:'上海'},{name:'郑州'}],
+                            [{name:'上海'},{name:'长春'}],
+                            [{name:'上海'},{name:'重庆'}],
+                            [{name:'上海'},{name:'长沙'}],
+                            [{name:'上海'},{name:'成都'}],
+                            [{name:'上海'},{name:'丹东'}],
+                            [{name:'上海'},{name:'大连'}],
+                            [{name:'上海'},{name:'福州'}],
+                            [{name:'上海'},{name:'海口'}],
+                            [{name:'上海'},{name:'呼和浩特'}],
+                            [{name:'上海'},{name:'合肥'}],
+                            [{name:'上海'},{name:'哈尔滨'}],
+                            [{name:'上海'},{name:'舟山'}],
+                            [{name:'上海'},{name:'银川'}],
+                            [{name:'上海'},{name:'南昌'}],
+                            [{name:'上海'},{name:'昆明'}],
+                            [{name:'上海'},{name:'贵阳'}],
+                            [{name:'上海'},{name:'兰州'}],
+                            [{name:'上海'},{name:'拉萨'}],
+                            [{name:'上海'},{name:'连云港'}],
+                            [{name:'上海'},{name:'临沂'}],
+                            [{name:'上海'},{name:'柳州'}],
+                            [{name:'上海'},{name:'宁波'}],
+                            [{name:'上海'},{name:'南宁'}],
+                            [{name:'上海'},{name:'北京'}],
+                            [{name:'上海'},{name:'沈阳'}],
+                            [{name:'上海'},{name:'秦皇岛'}],
+                            [{name:'上海'},{name:'西安'}],
+                            [{name:'上海'},{name:'石家庄'}],
+                            [{name:'上海'},{name:'汕头'}],
+                            [{name:'上海'},{name:'深圳'}],
+                            [{name:'上海'},{name:'青岛'}],
+                            [{name:'上海'},{name:'济南'}],
+                            [{name:'上海'},{name:'天津'}],
+                            [{name:'上海'},{name:'太原'}],
+                            [{name:'上海'},{name:'乌鲁木齐'}],
+                            [{name:'上海'},{name:'潍坊'}],
+                            [{name:'上海'},{name:'威海'}],
+                            [{name:'上海'},{name:'温州'}],
+                            [{name:'上海'},{name:'武汉'}],
+                            [{name:'上海'},{name:'厦门'}],
+                            [{name:'上海'},{name:'西宁'}],
+                            [{name:'上海'},{name:'徐州'}],
+                            [{name:'上海'},{name:'烟台'}],
+                            [{name:'上海'},{name:'珠海'}],
+                            [{name:'广州'},{name:'北海'}],
+                            [{name:'广州'},{name:'郑州'}],
+                            [{name:'广州'},{name:'长春'}],
+                            [{name:'广州'},{name:'重庆'}],
+                            [{name:'广州'},{name:'长沙'}],
+                            [{name:'广州'},{name:'成都'}],
+                            [{name:'广州'},{name:'常州'}],
+                            [{name:'广州'},{name:'大连'}],
+                            [{name:'广州'},{name:'福州'}],
+                            [{name:'广州'},{name:'海口'}],
+                            [{name:'广州'},{name:'呼和浩特'}],
+                            [{name:'广州'},{name:'合肥'}],
+                            [{name:'广州'},{name:'杭州'}],
+                            [{name:'广州'},{name:'哈尔滨'}],
+                            [{name:'广州'},{name:'舟山'}],
+                            [{name:'广州'},{name:'银川'}],
+                            [{name:'广州'},{name:'南昌'}],
+                            [{name:'广州'},{name:'昆明'}],
+                            [{name:'广州'},{name:'贵阳'}],
+                            [{name:'广州'},{name:'兰州'}],
+                            [{name:'广州'},{name:'拉萨'}],
+                            [{name:'广州'},{name:'连云港'}],
+                            [{name:'广州'},{name:'临沂'}],
+                            [{name:'广州'},{name:'柳州'}],
+                            [{name:'广州'},{name:'宁波'}],
+                            [{name:'广州'},{name:'南京'}],
+                            [{name:'广州'},{name:'南宁'}],
+                            [{name:'广州'},{name:'南通'}],
+                            [{name:'广州'},{name:'北京'}],
+                            [{name:'广州'},{name:'上海'}],
+                            [{name:'广州'},{name:'沈阳'}],
+                            [{name:'广州'},{name:'西安'}],
+                            [{name:'广州'},{name:'石家庄'}],
+                            [{name:'广州'},{name:'汕头'}],
+                            [{name:'广州'},{name:'青岛'}],
+                            [{name:'广州'},{name:'济南'}],
+                            [{name:'广州'},{name:'天津'}],
+                            [{name:'广州'},{name:'太原'}],
+                            [{name:'广州'},{name:'乌鲁木齐'}],
+                            [{name:'广州'},{name:'温州'}],
+                            [{name:'广州'},{name:'武汉'}],
+                            [{name:'广州'},{name:'无锡'}],
+                            [{name:'广州'},{name:'厦门'}],
+                            [{name:'广州'},{name:'西宁'}],
+                            [{name:'广州'},{name:'徐州'}],
+                            [{name:'广州'},{name:'烟台'}],
+                            [{name:'广州'},{name:'盐城'}]
+                        ]
+                    }
+                }
+            ]
+        };
+
+        var myChart = BMapExt.initECharts(container);
+        window.onresize = myChart.onresize;
+        BMapExt.setOption(option);
+    }
+);
+})();

+ 391 - 0
src/main/webapp/static/echarts-2.2.7/extension/BMap/src/main.js

@@ -0,0 +1,391 @@
+/**
+ * echarts 百度地图扩展,必须在echarts初始化前使用
+ *
+ * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。
+ * @author Neil (杨骥, 511415343@qq.com)
+ */
+define(function (require) {
+
+    /**
+     * 构造函数
+     *
+     * @param {String|HTMLElement|BMap.Map} obj
+     * @param {BMap} BMap
+     * @param {echarts} ec
+     * @parma {Object=} mapOption 百度地图初始化选项
+     * @constructor
+     */
+    function BMapExt(obj, BMap, ec, mapOption) {
+        this._init(obj, BMap, ec, mapOption);
+    };
+
+    /**
+     * echarts 容器元素
+     *
+     * @type {HTMLElement}
+     * @private
+     */
+    BMapExt.prototype._echartsContainer = null;
+
+    /**
+     * 百度地图实例
+     *
+     * @type {BMap.Map}
+     * @private
+     */
+    BMapExt.prototype._map = null;
+
+    /**
+     * 使用的echarts实例
+     *
+     * @type {ECharts}
+     * @private
+     */
+    BMapExt.prototype._ec = null;
+
+    /**
+     * geoCoord
+     *
+     * @type {Object}
+     * @private
+     */
+    BMapExt.prototype._geoCoord = [];
+
+    /**
+     * 记录地图的便宜量
+     *
+     * @type {Array.<number>}
+     * @private
+     */
+    BMapExt.prototype._mapOffset = [0, 0];
+
+
+    /**
+     * 初始化方法
+     *
+     * @param {String|HTMLElement|BMap.Map} obj
+     * @param {BMap} BMap
+     * @param {echarts} ec
+     * @private
+     */
+    BMapExt.prototype._init = function (obj, BMap, ec, mapOption) {
+        var self = this;
+        self._map = obj.constructor == BMap.Map ? obj : new BMap.Map(obj, mapOption);
+
+        /**
+         * Overlay类,用来生成覆盖物
+         *
+         * @constructor
+         * @extends BMap.Overlay
+         */
+        function Overlay() {}
+
+        Overlay.prototype = new BMap.Overlay();
+
+        /**
+         * 初始化
+         *
+         * @param {BMap.Map} map
+         * @override
+         */
+        Overlay.prototype.initialize = function (map) {
+            var size = map.getSize();
+            var div = self._echartsContainer = document.createElement('div');
+            div.style.position = 'absolute';
+            div.style.height = size.height + 'px';
+            div.style.width = size.width + 'px';
+            div.style.top = 0;
+            div.style.left = 0;
+            map.getPanes().labelPane.appendChild(div);
+            return div;
+        };
+
+        /**
+         * @override
+         */
+        Overlay.prototype.draw = function () {};
+
+        var myOverlay = new Overlay();
+
+        /**
+         * 获取echarts容器
+         *
+         * @return {HTMLElement}
+         * @public
+         */
+        self.getEchartsContainer = function () {
+            return self._echartsContainer;
+        };
+
+        /**
+         * 获取map实例
+         *
+         * @return {BMap.Map}
+         * @public
+         */
+        self.getMap = function () {
+            return self._map;
+        }
+
+        /**
+         * 自定义拖拽事件
+         */
+        self.onmoving = null;
+        self.onmoveend = null;
+
+        /**
+         * 自定义缩放事件
+         */
+        self.onzoom = null;
+
+        /**
+         * 经纬度转换为屏幕像素
+         *
+         * @param {Array.<number>} geoCoord  经纬度
+         * @return {Array.<number>}
+         * @public
+         */
+        self.geoCoord2Pixel = function (geoCoord) {
+            var point = new BMap.Point(geoCoord[0], geoCoord[1]);
+            var pos = self._map.pointToOverlayPixel(point);
+            return [pos.x, pos.y];
+        };
+
+        /**
+         * 屏幕像素转换为经纬度
+         *
+         * @param {Array.<number>} pixel  像素坐标
+         * @return {Array.<number>}
+         * @public
+         */
+        self.pixel2GeoCoord = function (pixel) {
+            var point = self._map.overlayPixelToPoint({
+                x: pixel[0],
+                y: pixel[1]
+            });
+            return [point.lng, point.lat];
+        };
+
+        /**
+         * 初始化echarts实例
+         *
+         * @return {ECharts}
+         * @public
+         */
+        self.initECharts = function () {
+            self._ec = ec.init.apply(self, arguments);
+            self._bindEvent();
+            self._addMarkWrap();
+            return self._ec;
+        };
+
+        // addMark wrap for get position from baidu map by geo location
+        // by kener at 2015.01.08
+        self._addMarkWrap = function () {
+            function _addMark (seriesIdx, markData, markType) {
+                var data;
+                if (markType == 'markPoint') {
+                    var data = markData.data;
+                    if (data && data.length) {
+                        for (var k = 0, len = data.length; k < len; k++) {
+                            self._AddPos(data[k]);
+                        }
+                    }
+                }
+                else {
+                    data = markData.data;
+                    if (data && data.length) {
+                        for (var k = 0, len = data.length; k < len; k++) {
+                            self._AddPos(data[k][0]);
+                            self._AddPos(data[k][1]);
+                        }
+                    }
+                }
+                self._ec._addMarkOri(seriesIdx, markData, markType);
+            }
+            self._ec._addMarkOri = self._ec._addMark;
+            self._ec._addMark = _addMark;
+        };
+
+        /**
+         * 获取ECharts实例
+         *
+         * @return {ECharts}
+         * @public
+         */
+        self.getECharts = function () {
+            return self._ec;
+        };
+
+        /**
+         * 获取地图的偏移量
+         *
+         * @return {Array.<number>}
+         * @public
+         */
+        self.getMapOffset = function () {
+            return self._mapOffset;
+        };
+
+        /**
+         * 对echarts的setOption加一次处理
+         * 用来为markPoint、markLine中添加x、y坐标,需要name与geoCoord对应
+         *
+         * @param {Object}
+         * @public
+         */
+        self.setOption = function (option, notMerge) {
+            var series = option.series || {};
+
+            // 记录所有的geoCoord
+            for (var i = 0, item; item = series[i++];) {
+                var geoCoord = item.geoCoord;
+                if (geoCoord) {
+                    for (var k in geoCoord) {
+                        self._geoCoord[k] = geoCoord[k];
+                    }
+                }
+            }
+
+            // 添加x、y
+            for (var i = 0, item; item = series[i++];) {
+                var markPoint = item.markPoint || {};
+                var markLine = item.markLine || {};
+
+                var data = markPoint.data;
+                if (data && data.length) {
+                    for (var k = 0, len = data.length; k < len; k++) {
+                        self._AddPos(data[k]);
+                    }
+                }
+
+                data = markLine.data;
+                if (data && data.length) {
+                    for (var k = 0, len = data.length; k < len; k++) {
+                        self._AddPos(data[k][0]);
+                        self._AddPos(data[k][1]);
+                    }
+                }
+            }
+
+            self._ec.setOption(option, notMerge);
+        }
+
+        /**
+         * 增加x、y坐标
+         *
+         * @param {Object} obj  markPoint、markLine data中的项,必须有name
+         * @param {Object} geoCoord
+         */
+        self._AddPos = function (obj) {
+            var coord = this._geoCoord[obj.name]
+            var pos = this.geoCoord2Pixel(coord);
+            obj.x = pos[0] - self._mapOffset[0];
+            obj.y = pos[1] - self._mapOffset[1];
+        };
+
+        /**
+         * 绑定地图事件的处理方法
+         *
+         * @private
+         */
+        self._bindEvent = function () {
+            self._map.addEventListener('zoomend', _zoomChangeHandler);
+
+            self._map.addEventListener('moving', _moveHandler('moving'));
+            self._map.addEventListener('moveend', _moveHandler('moveend'));
+
+            self._ec.getZrender().on('dragstart', _dragZrenderHandler(true));
+            self._ec.getZrender().on('dragend', _dragZrenderHandler(false));
+        }
+
+        /**
+         * 地图缩放触发事件
+         *
+         * @private
+         */
+        function _zoomChangeHandler() {
+            _fireEvent('zoom');
+        }
+
+        /**
+         * 地图移动、如拖拽触发事件
+         *
+         * @param {string} type moving | moveend  移动中|移动结束
+         * @return {Function}
+         * @private
+         */
+        function _moveHandler(type) {
+            return function () {
+                // 记录便宜量
+                var offsetEle =
+                    self._echartsContainer.parentNode.parentNode.parentNode;
+                self._mapOffset = [
+                    - parseInt(offsetEle.style.left) || 0,
+                    - parseInt(offsetEle.style.top) || 0
+                ];
+                self._echartsContainer.style.left = self._mapOffset[0] + 'px';
+                self._echartsContainer.style.top = self._mapOffset[1] + 'px';
+
+                _fireEvent(type);
+            }
+        }
+
+        /**
+         * Zrender拖拽触发事件
+         *
+         * @param {boolean} isStart
+         * @return {Function}
+         * @private
+         */
+        function _dragZrenderHandler(isStart) {
+            return function () {
+                var func = isStart ? 'disableDragging' : 'enableDragging';
+                self._map[func]();
+            }
+        }
+
+        /**
+         * 触发事件
+         *
+         * @param {stirng}  type 事件类型
+         * @private
+         */
+        function _fireEvent(type) {
+            var func = self['on' + type];
+            if (func) {
+                func();
+            } else {
+                self.refresh();
+            }
+        }
+
+        /**
+         * 刷新页面
+         *
+         * @public
+         */
+        self.refresh = function () {
+            if (self._ec) {
+                var option = self._ec.getOption();
+                var component = self._ec.component || {};
+                var legend = component.legend;
+                var dataRange = component.dataRange;
+
+                if (legend) {
+                    option.legend.selected = legend.getSelectedMap();
+                }
+
+                if (dataRange) {
+                    option.dataRange.range = dataRange._range;
+                }
+                self._ec.clear();
+                self.setOption(option);
+            }
+        };
+
+        self._map.addOverlay(myOverlay);
+    };
+
+    return BMapExt;
+});

+ 24 - 0
src/main/webapp/static/echarts-2.2.7/extension/README.md

@@ -0,0 +1,24 @@
+ECharts
+=======
+http://echarts.baidu.com
+
+基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。
+
+**———— 大数据时代,重新定义数据图表的时候到了**
+
+LICENSE:
+https://github.com/ecomfe/echarts/blob/master/LICENSE.txt
+ 
+Extension
+------------
+ECharts扩展,extension下每一个文件夹为一个独立扩展,一个完整的扩展至少包含源码、例子、可直接引入的单文件(amd模块化或者script标签式引入)
+
++ extension
+	+  snsShare
+		+  src
+		+  build
+		+  doc
+			+  doc.html
+			+  example.html
+ 
+