如何基于地形、倾斜摄影三维模型数据,在SuperMap GIS中,更加真实地模拟洪水动态漫延过程?
本文从以下几个方面进行说明:
其中涉及的产品有:SuperMap iDesktopX、SuperMap iServer、SuperMap iClient3D for WebGL/WebGPU。
1.1倾斜摄影三维模型数据生成DSM
具体操作请参考SuperMap iDesktopX帮助文档生成DSM数据。
1.2倾斜摄影三维模型数据入库
(1)倾斜入库参数设置,可以根据数据和需求的不同进行设置。参考如下:
注意:
具体操作请参考 SuperMap iDesktopX 帮助文档倾斜入库。
(2)将倾斜入库后的倾斜摄影三维模型数据加载到场景中,将DSM所在的数据源打开,并保存场景和工作空间后,关闭当前场景。
将上一步保存的场景和工作空间,发布三维服务和数据服务,具体步骤如下:
如有疑问请参考SuperMap iServer帮助文档发布文件型工作空间。
关键代码如下:
function init(SuperMap3D, scene, viewer) {
viewer.resolutionScale = window.devicePixelRatio;
var promise = scene.open(URL_CONFIG.SCENE_XGPARK_LT);
var layerS3M;
SuperMap3D.when(promise, function (layers) {
layerS3M = layers[0];
}, function (e) {
if (widget._showRenderLoopErrors) {
var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
widget.showErrorPanel(title, undefined, e);
}
});
var damBreak = new SuperMap3D.FloodAnalysis3D(viewer.scene);
function FloodAnalysis3D() {
if (!damBreak) {
damBreak = new SuperMap3D.FloodAnalysis3D(viewer.scene);
}
//起始出水位置
damBreak.floodPosition = new SuperMap3D.Cartesian3(114.21215320240138, 22.426297098303007, 8.29031689687963);
damBreak.terrainURL('http://www.supermapol.com/realspace/services/data-KeJiYuan/rest/data/datasources/kejiyuan/datasets/DatasetDSM');
damBreak.waterHeight = Number($('#waterHeight').val());
damBreak.waterMode = Number($('#WaterMode').val());
damBreak.layer = layerS3M;
//构成水流的流经区域
var points = SAMPLEDATA.FOOLDING;
damBreak.qureyRegion({
position: points
})
damBreak.build();
}
document.getElementById("start").onclick = function () {
FloodAnalysis3D();
};
需要修改以下:
保存修改后的html页面,在浏览器中运行。可以选择水面模式(贴地/绝对高度)以及设置水面高度值来调整需要的淹没效果。
如有疑问请参考范例:连通性淹没分析。
请使用超图官网上最新的SuperMap iDesktopX,SuperMap iServer和SuperMap iClient3D for WebGL/WebGPU版本