161 lines
5.8 KiB
HTML
Generated
161 lines
5.8 KiB
HTML
Generated
<!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">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<script src="lib/simpleRequire.js"></script>
|
|
<script src="lib/config.js"></script>
|
|
<script src="lib/jquery.min.js"></script>
|
|
<script src="lib/facePrint.js"></script>
|
|
<script src="lib/testHelper.js"></script>
|
|
<link rel="stylesheet" href="lib/reset.css">
|
|
</head>
|
|
<body>
|
|
<style>
|
|
h1 {
|
|
line-height: 60px;
|
|
height: 60px;
|
|
background: #146402;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
color: #eee;
|
|
font-size: 14px;
|
|
}
|
|
.chart {
|
|
height: 500px;
|
|
}
|
|
</style>
|
|
|
|
|
|
<div class="chart" id="main"></div>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
var echarts;
|
|
var chart;
|
|
var myChart;
|
|
var groupCategories = [];
|
|
var groupColors = [];
|
|
|
|
require([
|
|
'echarts',
|
|
'./data/map/json/world.json',
|
|
'./data/global-wind.json'
|
|
], function (ec, worldJson, windData) {
|
|
|
|
echarts = ec;
|
|
echarts.registerMap('world', worldJson);
|
|
var p = 0;
|
|
var maxMag = 0;
|
|
var minMag = Infinity;
|
|
var data = [];
|
|
for (var j = 0; j < windData.ny; j++) {
|
|
for (var i = 0; i < windData.nx; i++, p++) {
|
|
var vx = windData.data[p][0];
|
|
var vy = windData.data[p][1];
|
|
var mag = Math.sqrt(vx * vx + vy * vy);
|
|
// 数据是一个一维数组
|
|
// [ [经度, 维度,向量经度方向的值,向量维度方向的值] ]
|
|
data.push([
|
|
i / windData.nx * 360 - 180,
|
|
j / windData.ny * 180 - 90,
|
|
vx,
|
|
vy,
|
|
mag
|
|
]);
|
|
maxMag = Math.max(mag, maxMag);
|
|
minMag = Math.min(mag, minMag);
|
|
}
|
|
}
|
|
data.reverse();
|
|
|
|
var option = {
|
|
backgroundColor: '#333',
|
|
visualMap: {
|
|
left: 'center',
|
|
min: minMag,
|
|
max: maxMag,
|
|
dimension: 4,
|
|
inRange: {
|
|
// color: ['green', 'yellow', 'red']
|
|
color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
|
|
},
|
|
realtime: false,
|
|
hoverLink: true,
|
|
calculable: true,
|
|
textStyle: {
|
|
color: '#fff'
|
|
},
|
|
orient: 'horizontal'
|
|
},
|
|
geo: {
|
|
map: 'world',
|
|
left: 0,
|
|
right: 0,
|
|
top: 0,
|
|
zoom: 1,
|
|
silent: true,
|
|
itemStyle: {
|
|
normal: {
|
|
areaColor: '#323c48',
|
|
borderColor: '#111'
|
|
}
|
|
}
|
|
},
|
|
series: {
|
|
type: 'custom',
|
|
coordinateSystem: 'geo',
|
|
data: data,
|
|
// silent: true,
|
|
encode: {
|
|
x: 0,
|
|
y: 0
|
|
},
|
|
renderItem: function (params, api) {
|
|
var x = api.value(0), y = api.value(1), dx = api.value(2), dy = api.value(3);
|
|
var start = api.coord([Math.max(x - dx / 5, -180), Math.max(y - dy / 5, -90)]);
|
|
var end = api.coord([Math.min(x + dx / 5, 180), Math.min(y + dy / 5, 90)]);
|
|
return {
|
|
type: 'line',
|
|
shape: {
|
|
x1: start[0], y1: start[1],
|
|
x2: end[0], y2: end[1]
|
|
},
|
|
style: {
|
|
lineWidth: 0.5,
|
|
stroke: api.visual('color')
|
|
}
|
|
}
|
|
},
|
|
progressive: 2000
|
|
}
|
|
};
|
|
|
|
testHelper.createChart(echarts, 'main', option);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |