连通性淹没分析效果的制作流程


使用说明

如何基于地形、倾斜摄影三维模型数据,在SuperMap GIS中,更加真实地模拟洪水动态漫延过程?

本文从以下几个方面进行说明:

    1. 数据处理
    2. 发布服务
    3. 在SuperMap iClient3D for WebGL/WebGPU中加载

其中涉及的产品有:SuperMap iDesktopX、SuperMap iServer、SuperMap iClient3D for WebGL/WebGPU。

操作流程

1、数据处理

1.1倾斜摄影三维模型数据生成DSM

    • 在SuperMap iDesktopX中将倾斜摄影三维模型数据加载到球面场景中,并新建一个数据源。
    • 使用三维分析→模型出图→生成DSM功能,将倾斜摄影三维模型数据生成栅格数据集。其中数据范围是当前场景中所有图层范围的并集,自定义数据范围可通过选择面或绘制面方式来设置结果数据范围。
    • 分辨率设置:分辨率越小,数据越精细,效果更准,但生成数据的过程耗时越久
    • 相机高度设置:比倾斜摄影三维模型数据最高点高出几十米即可。

具体操作请参考SuperMap iDesktopX帮助文档生成DSM数据。

1.2倾斜摄影三维模型数据入库

(1)倾斜入库参数设置,可以根据数据和需求的不同进行设置。参考如下:

    • S3M版本:支持的版本号包括:S3M 1.0、S3M 2.0、S3M 3.0、S3M 3.01。如果需要在10.2.1版本前的iClient3D产品中使用数据文件,建议选择S3M 1.0。
    • 线程数:设置倾斜入库操作的线程数,默认为8。
    • 存储类型:如果是需要给倾斜摄影加密,存储类型必须选择紧凑型。如果将倾斜瓦片文件存储到MongoDB中,存储类型必须选择原始型。
    • 顶点优化方式:目前提供3种压缩方式,压缩所需时间由短到长依次为,不压缩、Draco压缩,MeshOpt。
    • 纹理压缩:目前支持4种压缩格式:WebP、DXT(PC设备)、CRN_DXT5(PC设备)、KTX2.0,默认为KTX2.0)。对于不同用途的数据,采用不同的纹理压缩方式,可以减少纹理图像所使用的显存数量。
    • 中心点坐标单位:如果原始配置文件中心点坐标单位为METER,则选择选择米。
    • 纹理重映射:用于解决部分倾斜数据中纹理拼接不合理的情况,提升性能。默认不勾选。
    • 重建LOD:可设置重建指数、顶层节点着色类型、融合边界等参数。
    • 重建指数(同以前的金字塔层级):是用于设置合并次数,系统会按4的N次合并处理。

注意:

  • 倾斜入库源数据支持OSGB和S3MB两种格式的.scp文件,但不支持两种格式scp文件同时入库。
  • 倾斜入库功能目前支持ENU以及投影坐标系的数据,暂不支持平面无投影坐标系的数据。
  • 倾斜入库功能只支持统一参考椭球体的坐标转换(投影转地理),不支持其他坐标系转换。
  • 若想多个中心点一致的倾斜摄影图层经过倾斜入库后,合并成一个图层,需勾选合并层级。
  • 将加密的倾斜摄影三维模型数据添加到场景时,需要输入密码。
  • ENU坐标系的数据倾斜入库时,如果是在球面加载,目标坐标系需选择EPSGCode:4326。

具体操作请参考 SuperMap iDesktopX 帮助文档倾斜入库。

(2)将倾斜入库后的倾斜摄影三维模型数据加载到场景中,将DSM所在的数据源打开,并保存场景和工作空间后,关闭当前场景。

2、发布服务

将上一步保存的场景和工作空间,发布三维服务和数据服务,具体步骤如下:

  • 在SuperMap iDesktopX的工作空间管理器中,在场景下右键点击新建球面场景。
  • 图层管理器选中普通图层,右键点击添加三维瓦片图层,选择上一步骤生成的*.scp文件。
  • 添加瓦片图层后,保存场景和工作空间,该工作空间文件将用于发布工作空间类型的三维服务。
  • 保存工作空间后,在 %SuperMap iServer_HOME%/bin 目录下,点击startup.bat批处理文件,启动SuperMap iServer服务。
  • 打开浏览器,地址栏输入http://localhost:8090/iserver/manager 进入服务管理页面,点击快速发布一个或一组服务按钮。
  • 弹出快速发布服务-选择发布的数据来源对话框,在数据来源处选择工作空间,点击下一步。
  • 弹出快速发布服务-配置数据对话框,点击远程浏览按钮选择前述所保存的工作空间,点击下一步。
  • 弹出快速发布服务-选择发布的服务类型对话框,勾选REST-三维服务和REST-数据服务,点击下一步。

如有疑问请参考SuperMap iServer帮助文档发布文件型工作空间。

3、在SuperMap iClient3D for WebGL/WebGPU中加载

关键代码如下:

	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();
		};

需要修改以下:

    • var promise = scene.open()替换为本地发布的三维服务地址。
    • damBreak.terrainURL()更换为DSM数据服务的地址。

保存修改后的html页面,在浏览器中运行。可以选择水面模式(贴地/绝对高度)以及设置水面高度值来调整需要的淹没效果。

如有疑问请参考范例:连通性淹没分析。

注意事项

请使用超图官网上最新的SuperMap iDesktopX,SuperMap iServer和SuperMap iClient3D for WebGL/WebGPU版本

  • SuperMap iDesktopX http://support.supermap.com.cn/product/iDesktopX.aspx
  • SuperMap iClient3D for WebGL/WebGPU http://support.supermap.com.cn/product/iClient.aspx
  • SuperMap iServer http://support.supermap.com.cn/product/iServer.aspx
版权所有 © 2000-2025 北京超图软件股份有限公司 京ICP备11032883号-8 京公网安备11010502008721 甲测资字11002074