| <!doctype html> | |
| <!-- | |
| 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"> | |
| <title>Scatter</title> | |
| <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> | |
| <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Fullscreen Landscape on iOS --> | |
| </head> | |
| <body> | |
| <style> | |
| html, body, #main { | |
| background: #111; | |
| width: 100%; | |
| height: 100%; | |
| margin: 0; | |
| } | |
| </style> | |
| <div id="main"></div> | |
| <div id="data-count"> | |
| <span>LOADED: </span> | |
| <span id="data-count-number"></span> | |
| </div> | |
| <style> | |
| #data-count { | |
| font-size: 30px; | |
| color: #fff; | |
| position: absolute; | |
| z-index: 1000; | |
| left: 10px; | |
| bottom: 10px; | |
| } | |
| #data-count-number { | |
| font-size: 80px; | |
| } | |
| </style> | |
| <script src="../dist/echarts.js"></script> | |
| <script src="./data/map/js/world.js"></script> | |
| <script src="lib/jquery.min.js"></script> | |
| <script src="lib/countup.js"></script> | |
| <script> | |
| var chart = echarts.init(document.getElementById('main')); | |
| var dataCount = 0; | |
| var CHUNK_COUNT = 200; | |
| // var CHUNK_COUNT = 20; | |
| // https://blog.openstreetmap.org/2012/04/01/bulk-gps-point-data/ | |
| function fetchData(idx) { | |
| if (idx >= CHUNK_COUNT) { | |
| return; | |
| } | |
| // var dataURL = `../../echarts-gl/test/data/gps/gps_${idx}.bin`; | |
| // var dataURL = `../../data-online/gps/gps_${idx}.bin`; | |
| var dataURL = `../../echarts-examples/public/data/asset/data/gps2/gps_${idx}.bin`; | |
| var xhr = new XMLHttpRequest(); | |
| xhr.open('GET', dataURL, true); | |
| xhr.responseType = 'arraybuffer'; | |
| xhr.onload = function (e) { | |
| var rawData = new Int32Array(this.response); | |
| var data = new Float32Array(rawData.length); | |
| var addedDataCount = rawData.length / 2; | |
| for (var i = 0; i < rawData.length; i += 2) { | |
| data[i] = rawData[i+1] / 1e7; | |
| data[i+1] = rawData[i] / 1e7; | |
| } | |
| chart.appendData({ | |
| seriesIndex: 0, | |
| data: data | |
| }); | |
| var countUp = new CountUp('data-count-number', dataCount, dataCount + addedDataCount, 0, 1); | |
| countUp.start(); | |
| dataCount += addedDataCount; | |
| fetchData(idx + 1); | |
| } | |
| xhr.send(); | |
| } | |
| chart.setOption({ | |
| backgroundColor: '#000', | |
| geo: { | |
| map: 'world', | |
| roam: true, | |
| label: { | |
| emphasis: { | |
| show: false | |
| } | |
| }, | |
| silent: true, | |
| itemStyle: { | |
| normal: { | |
| areaColor: '#323c48', | |
| borderColor: '#111' | |
| }, | |
| emphasis: { | |
| areaColor: '#2a333d' | |
| } | |
| } | |
| }, | |
| series: [{ | |
| name: '弱', | |
| type: 'scatter', | |
| progressive: 1e5, | |
| coordinateSystem: 'geo', | |
| symbolSize: 0.5, | |
| blendMode: 'lighter', | |
| large: true, | |
| itemStyle: { | |
| normal: { | |
| color: 'rgb(20, 15, 2)' | |
| } | |
| }, | |
| postEffect: { | |
| enable: true | |
| }, | |
| silent: true, | |
| dimensions: ['lng', 'lat'], | |
| data: new Float32Array() | |
| }] | |
| }); | |
| fetchData(0); | |
| </script> | |
| </body> | |
| </html> |