lines-ny-appendData.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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="lib/dat.gui.min.js"></script>
  8. <meta name='viewport' content='width=device-width, initial-scale=1' />
  9. </head>
  10. <body>
  11. <style>
  12. html, body, #main {
  13. background: #111;
  14. width: 100%;
  15. height: 100%;
  16. margin: 0;
  17. }
  18. </style>
  19. <div id='main'></div>
  20. <script>
  21. var xs = [440000, 450000];
  22. var ys = [4368000, 4537000];
  23. // var dataURL = '../../data-online/figshare_Urban_Road_Network/public/links_ny.bin';
  24. // var dataURL = '../../echarts-worker/example/data/links_ny.bin';
  25. // var dataURL = '../../echarts-worker/example/data/Links_NewYork_1.json';
  26. // var dataURL = 'http://echarts.baidu.com/resource/data/figshare_Urban_Road_Network/public/Links_NewYork_1.json';
  27. require([
  28. 'echarts', 'map/js/world'
  29. ], function (echarts) {
  30. var config = {
  31. dataLoading: 'whole',
  32. progressive: 40000,
  33. progressiveThreshold: 3000,
  34. largeModel: true
  35. };
  36. var myChart = echarts.init(document.getElementById('main'));
  37. var CHUNK_COUNT = 32;
  38. var dataCount = 0;
  39. function fetchData(idx) {
  40. if (idx >= CHUNK_COUNT) {
  41. return;
  42. }
  43. var dataURL = `../../echarts-examples/public/data/asset/data/links-ny/links_ny_${idx}.bin`;
  44. var xhr = new XMLHttpRequest();
  45. xhr.open('GET', dataURL, true);
  46. xhr.responseType = 'arraybuffer';
  47. xhr.onload = function (e) {
  48. var rawData = new Float32Array(this.response);
  49. var data = new Float64Array(rawData.length - 2);
  50. var offsetX = rawData[0];
  51. var offsetY = rawData[1];
  52. var off = 0;
  53. var addedDataCount = 0;
  54. for (var i = 2; i < rawData.length;) {
  55. var count = rawData[i++];
  56. data[off++] = count;
  57. for (var k = 0; k < count; k++) {
  58. var x = rawData[i++] + offsetX;
  59. var y = rawData[i++] + offsetY;
  60. data[off++] = x;
  61. data[off++] = y;
  62. addedDataCount++;
  63. }
  64. }
  65. myChart.appendData({
  66. seriesIndex: 0,
  67. data: data
  68. });
  69. dataCount += addedDataCount;
  70. fetchData(idx + 1);
  71. }
  72. xhr.send();
  73. }
  74. var option = {
  75. progressive: 20000,
  76. backgroundColor: '#111',
  77. geo: {
  78. center: [-74.04327099998152, 40.86737600240287],
  79. zoom: 360,
  80. map: 'world',
  81. roam: true,
  82. silent: true,
  83. itemStyle: {
  84. normal: {
  85. color: 'transparent',
  86. borderColor: 'rgba(255,255,255,0.1)',
  87. borderWidth: 1
  88. }
  89. }
  90. },
  91. series: [{
  92. type: 'lines',
  93. coordinateSystem: 'geo',
  94. blendMode: 'lighter',
  95. dimensions: ['value'],
  96. data: new Float64Array(),
  97. polyline: true,
  98. large: true,
  99. lineStyle: {
  100. color: 'orange',
  101. width: 0.5,
  102. opacity: 0.3
  103. }
  104. }]
  105. };
  106. fetchData(0);
  107. myChart.setOption(option);
  108. });
  109. </script>
  110. </body>
  111. </html>