SuperMap GIS支持对已经建立金字塔的UDB、ORACLE、SQLServer 的栅格数据集、影像数据集以及SIT(SuperMap Image Tower)文件生成影像瓦片,以优化影像数据的浏览性能。
SuperMap iClient3D for WebGL/WebGPU 可访问由SuperMap iServer发布的三维服务,实现影像数据的加载。
本文主要介绍SuperMap iClient3D for WebGL/WebGPU 加载影像数据的详细操作流程,主要操作步骤如下:
其中涉及的产品有:SuperMap iDesktopX、SuperMap iServer、SuperMap iClient3D for WebGL/WebGPU
下面将以珠峰影像数据为例进行介绍
通过SuperMap iDesktopX 将影像数据集生成*.sci3d的三维影像瓦片,便于后续发布三维服务。
1.1操作步骤
(1)打开SuperMap iDesktopX ,在工作空间管理器的数据源处右键打开文件型数据源。
(2)选中想要生成瓦片的影像数据集、栅格数据集或镶嵌数据集,右键点击生成三维瓦片...选项。
(3)在弹出的生成三维瓦片对话框中点击添加数据集按钮,选中将要生成瓦片的数据集,点击确定,设置以下:
(4)在对话框的参数设置处,设置以下:
(5)瓦片范围:默认采用数据集的范围,左上右下四个文本框显示了系统默认范围,也支持用户自定义范围。设置完后,点击生成按钮。
1.2操作结果
生成三维瓦片后,在目标路径下生成一个文件夹,文件夹包含了对应的影像瓦片文件,其中*.sci3d 文件为瓦片配置文件,标记了瓦片的范围、层数等信息。
如有疑问,详细操作可参考SuperMap iDesktopX 帮助文档生成三维影像瓦片。
将上一步骤中生成的影像瓦片以三维服务形式发布到本地或远程服务器上,便于在SuperMap iClient3D for WebGL/WebGPU中加载。
2.1操作步骤
(1)在SuperMap iDesktopX 桌面产品的工作空间管理器中,在场景下右键点击新建球面场景。
(2)图层管理器下选中普通图层,右键点击添加影像瓦片图层,选择上一步骤生成的*.sci3d文件。
(3)添加三维影像瓦片图层后,保存场景和工作空间,该工作空间文件将用于发布工作空间类型的三维服务。
(4)保存工作空间后,在 SuperMap iServer_HOME /bin 目录下,点击startup.bat批处理文件,启动SuperMap iServer服务。
(5)打开浏览器,地址栏输入 http://localhost:8090/iserver/manager 进入服务管理页面,首页下点击快速发布一个或一组服务按钮。
(6)弹出快速发布服务-选择发布的数据来源对话框,在数据来源处选择工作空间,点击下一步。
(7)弹出快速发布服务-配置数据对话框,点击远程浏览按钮选择前述所保存的工作空间,点击下一步。
(8)弹出快速发布服务-选择发布的服务类型对话框,勾选REST-三维服务,点击下一步。
由于SuperMap iServer 支持将 S3M 瓦片、OSGB 模型瓦片 、地形瓦片(cf、terrainz)、影像瓦片(WebP、JPG、PNG)作为数据来源直接发布为三维服务。也可以直接将上一步骤的地形瓦片发布三维服务。
详细操作,请参考SuperMap iServer帮助文档
2.2操作结果
服务发布完成,将在服务列表(http://localhost:8090/iserver/services)中显示该三维服务。
发布三维服务后,在此步骤中便可通过 SuperMap iClient3D for WebGL/WebGPU浏览影像数据。
提示:在操作前请将 SuperMap iClient3D for WebGL/WebGPU 产品包存放在 SuperMap iServer_HOME /webapps 目录下。
3.1操作步骤
(1)获取三维数据url地址,按照如下顺序点击获取:
(2)进入WebGL产品包存放路径( SuperMap iServer_HOME /webapps),在examples/webgl文件夹下,文本方式打开terrainAndImagery.html范例,将SuperMapimageryProvider() 中的地址修改为方才复制的url地址,代码如下:
function init(SuperMap3D, scene, viewer) { viewer.resolutionScale = window.devicePixelRatio; //添加SuperMap iServer发布的影像服务 var layer = viewer.imageryLayers.addImageryProvider(new SuperMap3D.SuperMapImageryProvider({ url : URL_CONFIG.ZF_IMG })); viewer.scene.camera.setView({ destination : new SuperMap3D.Cartesian3(-1206939.1925299785, 5337998.241228442, 3286279.2424502545), orientation : { heading : 1.4059101895600987, pitch : -0.20917672793046682, roll : 2.708944180085382e-13 } });
(3)以localhost方式打开terrainAndImagery.html网页。
如有疑问请参考范例:地形影像。
3.2操作结果
打开网页后,相机飞至影像数据所在位置,显示效果如下图:
注:上图为加载了影像数据和地形数据的效果,加载地形数据相关操作请参考 加载地形数据文档。