2025-03-11 08:25:45 +00:00
|
|
|
|
<!--********************************************************************
|
|
|
|
|
|
* by jiawanlong
|
|
|
|
|
|
*********************************************************************-->
|
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<html>
|
|
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="UTF-8" />
|
2025-03-19 03:00:22 +00:00
|
|
|
|
<link rel="stylesheet" href="./../../libs/cesium/Cesium1.98/Widgets/widgets.css">
|
|
|
|
|
|
<script type="text/javascript" src="./../../libs/cesium/Cesium1.98/Cesium.js"></script>
|
2025-03-11 08:25:45 +00:00
|
|
|
|
<script src="./cesium-wind.js"></script>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
<body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
|
|
|
|
|
|
<div id="map" style="margin: 0 auto; width: 100%; height: 100%"></div>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2025-09-23 10:22:05 +00:00
|
|
|
|
window.viewer = new Cesium.Viewer('map', {
|
|
|
|
|
|
imageryProvider: false,
|
|
|
|
|
|
baseLayerPicker: false,
|
|
|
|
|
|
infoBox: false,
|
|
|
|
|
|
selectionIndicator: false,
|
|
|
|
|
|
animation: false,//是否创建动画小器件,左下角仪表
|
|
|
|
|
|
baseLayerPicker: false,//是否显示图层选择器
|
|
|
|
|
|
fullscreenButton: false,//是否显示全屏按钮
|
|
|
|
|
|
geocoder: false,//是否显示geocoder小器件,右上角查询按钮
|
|
|
|
|
|
homeButton: false,//是否显示Home按钮
|
|
|
|
|
|
infoBox: false,//是否显示信息框
|
|
|
|
|
|
sceneModePicker: false,//是否显示3D/2D选择器
|
|
|
|
|
|
selectionIndicator: false,//是否显示选取指示器组件
|
|
|
|
|
|
timeline: false,//是否显示时间轴
|
|
|
|
|
|
navigationHelpButton: false,//是否显示右上角的帮助按钮
|
|
|
|
|
|
scene3DOnly: true,//如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
|
|
|
|
|
|
});
|
|
|
|
|
|
var xyz = new Cesium.UrlTemplateImageryProvider({
|
|
|
|
|
|
"credit": "安徽",
|
|
|
|
|
|
"url": '///data.mars3d.cn/tile/img/{z}/{x}/{y}.jpg'
|
|
|
|
|
|
})
|
|
|
|
|
|
viewer.imageryLayers.addImageryProvider(xyz)
|
|
|
|
|
|
|
2025-03-11 08:25:45 +00:00
|
|
|
|
viewer.scene.debugShowFramesPerSecond = true;
|
|
|
|
|
|
|
2025-09-23 10:22:05 +00:00
|
|
|
|
viewer.camera.setView({
|
|
|
|
|
|
destination: Cesium.Rectangle.fromDegrees(100, 20, 120, 40),
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2025-03-11 08:25:45 +00:00
|
|
|
|
// !!!!!!!!!!!!!!教程!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
|
/*
|
|
|
|
|
|
1、数据获取
|
|
|
|
|
|
数据源:https://nomads.ncep.noaa.gov/ (记得要grid转json)
|
|
|
|
|
|
简单方式:方式https://github.com/jiawanlong/wind-js-server(记得配java_home)
|
|
|
|
|
|
|
|
|
|
|
|
2、利用WindLayer插件
|
|
|
|
|
|
链接:https://github.com/jiawanlong/cesium-wind
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
const windOptions = {
|
|
|
|
|
|
colorScale: [
|
|
|
|
|
|
'rgb(36,104, 180)',
|
|
|
|
|
|
'rgb(60,157, 194)',
|
|
|
|
|
|
'rgb(128,205,193 )',
|
|
|
|
|
|
'rgb(151,218,168 )',
|
|
|
|
|
|
'rgb(198,231,181)',
|
|
|
|
|
|
'rgb(238,247,217)',
|
|
|
|
|
|
'rgb(255,238,159)',
|
|
|
|
|
|
'rgb(252,217,125)',
|
|
|
|
|
|
'rgb(255,182,100)',
|
|
|
|
|
|
'rgb(252,150,75)',
|
|
|
|
|
|
'rgb(250,112,52)',
|
|
|
|
|
|
'rgb(245,64,32)',
|
|
|
|
|
|
'rgb(237,45,28)',
|
|
|
|
|
|
'rgb(220,24,32)',
|
|
|
|
|
|
'rgb(180,0,35)',
|
|
|
|
|
|
],
|
|
|
|
|
|
frameRate: 16,
|
|
|
|
|
|
maxAge: 60,
|
|
|
|
|
|
globalAlpha: 0.9,
|
|
|
|
|
|
velocityScale: 1 / 30,
|
|
|
|
|
|
paths: 2000
|
|
|
|
|
|
};
|
|
|
|
|
|
let windLayer;
|
|
|
|
|
|
fetch('./2024122600.json')
|
|
|
|
|
|
.then(res => res.json())
|
|
|
|
|
|
.then(res => {
|
|
|
|
|
|
windLayer = new CesiumWind.WindLayer(res, { windOptions });
|
|
|
|
|
|
windLayer.addTo(viewer);
|
|
|
|
|
|
// windLayer.remove();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
|
|
</html>
|