Cesium-Examples/examples/cesiumEx/8.1.4、风场.html

95 lines
3.5 KiB
HTML
Raw Permalink Normal View History

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>
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;
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>