|  | 
 | <!-- | 
 | Licensed to the Apache Software Foundation (ASF) under one | 
 | or more contributor license agreements.  See the NOTICE file | 
 | distributed with this work for additional information | 
 | regarding copyright ownership.  The ASF licenses this file | 
 | to you under the Apache License, Version 2.0 (the | 
 | "License"); you may not use this file except in compliance | 
 | with the License.  You may obtain a copy of the License at | 
 |  | 
 |    http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 | Unless required by applicable law or agreed to in writing, | 
 | software distributed under the License is distributed on an | 
 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 | KIND, either express or implied.  See the License for the | 
 | specific language governing permissions and limitations | 
 | under the License. | 
 | --> | 
 |  | 
 | <html> | 
 |     <head> | 
 |         <meta charset='utf-8'> | 
 |         <script src='lib/simpleRequire.js'></script> | 
 |         <script src='lib/config.js'></script> | 
 |         <script src='lib/jquery.min.js'></script> | 
 |         <script src='http://api.map.baidu.com/api?v=3.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu'></script> | 
 |         <meta name='viewport' content='width=device-width, initial-scale=1' /> | 
 |     </head> | 
 |     <body> | 
 |         <style> | 
 |             html, body, #main { | 
 |                 width: 100%; | 
 |                 height: 100%; | 
 |                 margin: 0; | 
 |             } | 
 |             #clear { | 
 |                 position: absolute; | 
 |                 left: 10px; | 
 |                 top: 10px; | 
 |             } | 
 |             #clear2 { | 
 |                 position: absolute; | 
 |                 left: 10px; | 
 |                 top: 40px; | 
 |             } | 
 |         </style> | 
 |         <div id='main'></div> | 
 |         <button id='clear'>Clear(`chart.setOption`)</button> | 
 |         <button id='clear2'>Clear(`chart.clear`)</button> | 
 |         <script> | 
 |  | 
 |             require([ | 
 |                 'echarts', | 
 |                 'data/lines-bus.json', | 
 |                 'extension/bmap' | 
 |             ], function (echarts, data) { | 
 |  | 
 |                 var myChart = echarts.init(document.getElementById('main')); | 
 |  | 
 |                     var hStep = 300 / (data.length - 1); | 
 |                     var busLines = data.map(function (busLine, idx) { | 
 |                         var prevPt; | 
 |                         var points = []; | 
 |                         for (var i = 0; i < busLine.length; i += 2) { | 
 |                             var pt = [busLine[i], busLine[i + 1]]; | 
 |                             if (i > 0) { | 
 |                                 pt = [ | 
 |                                     prevPt[0] + pt[0], | 
 |                                     prevPt[1] + pt[1] | 
 |                                 ]; | 
 |                             } | 
 |                             prevPt = pt; | 
 |  | 
 |                             points.push([pt[0] / 1e4, pt[1] / 1e4]); | 
 |                         } | 
 |                         return { | 
 |                             coords: points, | 
 |                             lineStyle: { | 
 |                                 normal: { | 
 |                                     color: echarts.color.modifyHSL('#5A94DF', Math.round(hStep * idx)) | 
 |                                 } | 
 |                             } | 
 |                         }; | 
 |                     }); | 
 |                     console.log(busLines.length); | 
 |                     // busLines = busLines.slice(0, 100); | 
 |  | 
 |                     myChart.setOption({ | 
 |                         animation: false, | 
 |                         bmap: { | 
 |                             center: [116.46, 39.92], | 
 |                             zoom: 10, | 
 |                             roam: true, | 
 |                             mapStyle: { | 
 |                               'styleJson': [ | 
 |                                 { | 
 |                                   'featureType': 'water', | 
 |                                   'elementType': 'all', | 
 |                                   'stylers': { | 
 |                                     'color': '#031628' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'land', | 
 |                                   'elementType': 'geometry', | 
 |                                   'stylers': { | 
 |                                     'color': '#000102' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'highway', | 
 |                                   'elementType': 'all', | 
 |                                   'stylers': { | 
 |                                     'visibility': 'off' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'arterial', | 
 |                                   'elementType': 'geometry.fill', | 
 |                                   'stylers': { | 
 |                                     'color': '#000000' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'arterial', | 
 |                                   'elementType': 'geometry.stroke', | 
 |                                   'stylers': { | 
 |                                     'color': '#0b3d51' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'local', | 
 |                                   'elementType': 'geometry', | 
 |                                   'stylers': { | 
 |                                     'color': '#000000' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   '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': '#465b6c' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'manmade', | 
 |                                   'elementType': 'all', | 
 |                                   'stylers': { | 
 |                                     'color': '#022338' | 
 |                                   } | 
 |                                 }, | 
 |                                 { | 
 |                                   'featureType': 'label', | 
 |                                   'elementType': 'all', | 
 |                                   'stylers': { | 
 |                                     'visibility': 'off' | 
 |                                   } | 
 |                                 } | 
 |                               ] | 
 |                             } | 
 |                         }, | 
 |                         series: [{ | 
 |                             type: 'lines', | 
 |                             coordinateSystem: 'bmap', | 
 |                             polyline: true, | 
 |                             data: busLines, | 
 |                             silent: true, | 
 |                             lineStyle: { | 
 |                                 normal: { | 
 |                                     // color: '#c23531', | 
 |                                     // color: 'rgb(200, 35, 45)', | 
 |                                     opacity: 0.2, | 
 |                                     width: 1 | 
 |                                 } | 
 |                             }, | 
 |                             progressiveThreshold: 500, | 
 |                             progressive: 200 | 
 |                         }, { | 
 |                             type: 'lines', | 
 |                             coordinateSystem: 'bmap', | 
 |                             polyline: true, | 
 |                             data: busLines, | 
 |                             lineStyle: { | 
 |                                 normal: { | 
 |                                     width: 0 | 
 |                                 } | 
 |                             }, | 
 |                             effect: { | 
 |                                 constantSpeed: 20, | 
 |                                 show: true, | 
 |                                 trailLength: 0.1, | 
 |                                 symbolSize: 1.5 | 
 |                             }, | 
 |                             zlevel: 1 | 
 |                         }] | 
 |                     }); | 
 |  | 
 |                     document.getElementById('clear').addEventListener('click', function() { | 
 |                         myChart.setOption({ | 
 |                             series: [{ | 
 |                                 data: [] | 
 |                             }, { | 
 |                                 data: [] | 
 |                             }] | 
 |                         }); | 
 |                     }); | 
 |                     document.getElementById('clear2').addEventListener('click', function() { | 
 |                         myChart.clear(); | 
 |                     }); | 
 |             }); | 
 |         </script> | 
 |     </body> | 
 | </html> |