Cesium 是一款面向三維地球和地圖的,世界級的JavaScript開源產品。它提供了基於JavaScript語言的開發包,方便用戶快速搭建一款零插件的虛擬地球Web應用,並在性能,精度,渲染質量以及多平台,易用性上都有高質量的保證。
關於淹沒分析
淹沒分析主要研究的是某一塊指定的研究的區域,小到一個地塊,然后大到一個小區、一個小鎮、亦或是一個城鎮、一個城市、一個國家在遇到洪水時,在極端情況下,沒有任何的排水設施、也沒有任何的泄洪措施等(當然這種假設肯定是不存在的)模擬的隨時間遷移的淹沒情況。
需要具備的參數:淹沒范圍,水面上升速度(當然,如果研究區域所處平原,或者地形不明顯,這種模擬會效果不佳)
效果圖
具體操作
1、初始化,加載影像和地形
-
var viewer = new Cesium.Viewer('cesiumContainer', {
-
imageryProvider: new Cesium.UrlTemplateImageryProvider({
-
url: 'http://www.google.cn/maps/vt?lyrs=s@716&x={x}&y={y}&z={z}'
-
}),
-
terrainProvider: Cesium.createWorldTerrain({
-
requestVertexNormals: true,
-
requestWaterMask: true
-
})
-
});
2、指定研究區域
-
var positions = [114......., 30........., 114......., 30........., 114......., 30........., 114......., 30........];
3、添加polygon實體作為顯示對象
-
var waterHeight = 0; // 當前淹沒高度
-
var entity = viewer.entities.add({
-
polygon: {
-
hierarchy: Cesium.Cartesian3.fromDegreesArray(positions),
-
material: Cesium.Color.RED.withAlpha(0.5),
-
extrudedHeight: new Cesium.CallbackProperty(function () {
-
return waterHeight;
-
})
-
}
-
});
更多詳情見小專欄此文章:GIS之家cesium小專欄
文章提供源碼,對本專欄感興趣的話,可以關注一波