lines-bus.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <html>
  2. <head>
  3. <meta charset='utf-8'>
  4. <script src='lib/esl.js'></script>
  5. <script src='lib/config.js'></script>
  6. <script src='lib/jquery.min.js'></script>
  7. <script src='http://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM'></script>
  8. <meta name='viewport' content='width=device-width, initial-scale=1' />
  9. </head>
  10. <body>
  11. <style>
  12. html, body, #main {
  13. width: 100%;
  14. height: 100%;
  15. margin: 0;
  16. }
  17. </style>
  18. <div id='main'></div>
  19. <script>
  20. require([
  21. 'echarts',
  22. // 'echarts/chart/lines',
  23. // 'echarts/component/legend',
  24. 'extension/bmap'
  25. ], function (echarts) {
  26. var myChart = echarts.init(document.getElementById('main'));
  27. $.get('data/lines-bus.json', function (data) {
  28. var hStep = 300 / (data.length - 1);
  29. var busLines = data.map(function (busLine, idx) {
  30. var prevPt;
  31. var points = [];
  32. for (var i = 0; i < busLine.length; i += 2) {
  33. var pt = [busLine[i], busLine[i + 1]];
  34. if (i > 0) {
  35. pt = [
  36. prevPt[0] + pt[0],
  37. prevPt[1] + pt[1]
  38. ];
  39. }
  40. prevPt = pt;
  41. points.push([pt[0] / 1e4, pt[1] / 1e4]);
  42. }
  43. return {
  44. coords: points,
  45. lineStyle: {
  46. normal: {
  47. color: echarts.color.modifyHSL('#5A94DF', Math.round(hStep * idx))
  48. }
  49. }
  50. };
  51. });
  52. console.log(busLines.length);
  53. // busLines = busLines.slice(0, 100);
  54. myChart.setOption({
  55. animation: false,
  56. bmap: {
  57. center: [116.46, 39.92],
  58. zoom: 10,
  59. roam: true,
  60. mapStyle: {
  61. 'styleJson': [
  62. {
  63. 'featureType': 'water',
  64. 'elementType': 'all',
  65. 'stylers': {
  66. 'color': '#031628'
  67. }
  68. },
  69. {
  70. 'featureType': 'land',
  71. 'elementType': 'geometry',
  72. 'stylers': {
  73. 'color': '#000102'
  74. }
  75. },
  76. {
  77. 'featureType': 'highway',
  78. 'elementType': 'all',
  79. 'stylers': {
  80. 'visibility': 'off'
  81. }
  82. },
  83. {
  84. 'featureType': 'arterial',
  85. 'elementType': 'geometry.fill',
  86. 'stylers': {
  87. 'color': '#000000'
  88. }
  89. },
  90. {
  91. 'featureType': 'arterial',
  92. 'elementType': 'geometry.stroke',
  93. 'stylers': {
  94. 'color': '#0b3d51'
  95. }
  96. },
  97. {
  98. 'featureType': 'local',
  99. 'elementType': 'geometry',
  100. 'stylers': {
  101. 'color': '#000000'
  102. }
  103. },
  104. {
  105. 'featureType': 'railway',
  106. 'elementType': 'geometry.fill',
  107. 'stylers': {
  108. 'color': '#000000'
  109. }
  110. },
  111. {
  112. 'featureType': 'railway',
  113. 'elementType': 'geometry.stroke',
  114. 'stylers': {
  115. 'color': '#08304b'
  116. }
  117. },
  118. {
  119. 'featureType': 'subway',
  120. 'elementType': 'geometry',
  121. 'stylers': {
  122. 'lightness': -70
  123. }
  124. },
  125. {
  126. 'featureType': 'building',
  127. 'elementType': 'geometry.fill',
  128. 'stylers': {
  129. 'color': '#000000'
  130. }
  131. },
  132. {
  133. 'featureType': 'all',
  134. 'elementType': 'labels.text.fill',
  135. 'stylers': {
  136. 'color': '#857f7f'
  137. }
  138. },
  139. {
  140. 'featureType': 'all',
  141. 'elementType': 'labels.text.stroke',
  142. 'stylers': {
  143. 'color': '#000000'
  144. }
  145. },
  146. {
  147. 'featureType': 'building',
  148. 'elementType': 'geometry',
  149. 'stylers': {
  150. 'color': '#022338'
  151. }
  152. },
  153. {
  154. 'featureType': 'green',
  155. 'elementType': 'geometry',
  156. 'stylers': {
  157. 'color': '#062032'
  158. }
  159. },
  160. {
  161. 'featureType': 'boundary',
  162. 'elementType': 'all',
  163. 'stylers': {
  164. 'color': '#465b6c'
  165. }
  166. },
  167. {
  168. 'featureType': 'manmade',
  169. 'elementType': 'all',
  170. 'stylers': {
  171. 'color': '#022338'
  172. }
  173. },
  174. {
  175. 'featureType': 'label',
  176. 'elementType': 'all',
  177. 'stylers': {
  178. 'visibility': 'off'
  179. }
  180. }
  181. ]
  182. }
  183. },
  184. series: [{
  185. type: 'lines',
  186. coordinateSystem: 'bmap',
  187. polyline: true,
  188. data: busLines,
  189. silent: true,
  190. lineStyle: {
  191. normal: {
  192. // color: '#c23531',
  193. // color: 'rgb(200, 35, 45)',
  194. opacity: 0.2,
  195. width: 1
  196. }
  197. },
  198. progressiveThreshold: 500,
  199. progressive: 200
  200. }, {
  201. type: 'lines',
  202. coordinateSystem: 'bmap',
  203. polyline: true,
  204. data: busLines,
  205. lineStyle: {
  206. normal: {
  207. width: 0
  208. }
  209. },
  210. effect: {
  211. constantSpeed: 20,
  212. show: true,
  213. trailLength: 0.1,
  214. symbolSize: 1.5
  215. },
  216. zlevel: 1
  217. }]
  218. });
  219. });
  220. });
  221. </script>
  222. </body>
  223. </html>