145 lines
5.0 KiB
HTML
Generated
145 lines
5.0 KiB
HTML
Generated
|
|
<!--
|
|
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="lib/dat.gui.min.js"></script>
|
|
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
|
</head>
|
|
<body>
|
|
<style>
|
|
html, body, #main {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
}
|
|
</style>
|
|
<div id='main'></div>
|
|
<script>
|
|
|
|
var xs = [440000, 450000];
|
|
var ys = [4368000, 4537000];
|
|
|
|
require([
|
|
'echarts',
|
|
'data/map/json/world.json',
|
|
'./data/flight.json'
|
|
], function (echarts, worldJson, data) {
|
|
|
|
echarts.registerMap('world', worldJson);
|
|
|
|
var config = {
|
|
dataLoading: 'whole',
|
|
streamThreshold: 0,
|
|
streamRender: true,
|
|
largeModel: true
|
|
};
|
|
|
|
var chart;
|
|
|
|
// var gui = new dat.GUI();
|
|
// gui.add(config, 'dataLoading', ['whole', 'chunked'])
|
|
// .onChange(init);
|
|
// gui.add(config, 'largeModel')
|
|
// .onChange(init);
|
|
// gui.add(config, 'streamRender')
|
|
// .onChange(init);
|
|
// gui.add(config, 'streamThreshold', 0, 200000)
|
|
// .onChange(init);
|
|
|
|
init();
|
|
|
|
function init() {
|
|
if (chart) {
|
|
chart.dispose();
|
|
}
|
|
|
|
chart = echarts.init(document.getElementById('main'));
|
|
|
|
function getAirportCoord(idx) {
|
|
return [data.airports[idx][3], data.airports[idx][4]];
|
|
}
|
|
var routes = data.routes.map(function (airline) {
|
|
return [
|
|
getAirportCoord(airline[1]),
|
|
getAirportCoord(airline[2])
|
|
];
|
|
});
|
|
|
|
var option = {
|
|
streamStep: 4000,
|
|
title: {
|
|
text: 'World Flights',
|
|
left: 'center',
|
|
textStyle: {
|
|
color: '#eee'
|
|
}
|
|
},
|
|
backgroundColor: '#003',
|
|
tooltip: {
|
|
formatter: function (param) {
|
|
var route = data.routes[param.dataIndex];
|
|
return data.airports[route[1]][1] + ' > ' + data.airports[route[2]][1];
|
|
}
|
|
},
|
|
geo: {
|
|
map: 'world',
|
|
left: 0,
|
|
right: 0,
|
|
roam: true,
|
|
silent: true,
|
|
itemStyle: {
|
|
normal: {
|
|
borderColor: '#003',
|
|
color: '#005'
|
|
}
|
|
}
|
|
},
|
|
series: [{
|
|
type: 'lines',
|
|
coordinateSystem: 'geo',
|
|
blendModel: 'lighter',
|
|
data: routes,
|
|
large: true,
|
|
largeThreshold: 100,
|
|
lineStyle: {
|
|
normal: {
|
|
opacity: 0.5,
|
|
width: 0.5,
|
|
curveness: 0.3
|
|
}
|
|
},
|
|
// 设置混合模式为叠加
|
|
blendMode: 'lighter'
|
|
}]
|
|
};
|
|
|
|
chart.setOption(option);
|
|
}
|
|
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
</html> |