倾斜摄影三维模型通常被称作 “一张皮” 的模型,为发挥倾斜摄影三维模型的应用价值,超图三维率先采用了模型叠加矢量面的方式对倾斜摄影三维模型进行单体化,并支持在矢量面数据的属性表中存储各类业务方面的属性信息。
让“一张皮”的模型在实现单体化的同时也能进行属性查询操作。
目前,SuperMap iClient3D for WebGL/WebGPU提供了众多范例程序,其中 “动态单体化” 范例便展示了倾斜摄影三维模型实现动态单体化选择和属性查询的效果。本文将依照范例的效果,指导用户如何利用自己的倾斜摄影三维模型数据在SuperMap iClient3D for WebGL/WebGPU中实现属性查询,主要操作流程如下:
其中涉及的产品有:SuperMap iDesktopX,SuperMap iServer ,SuperMap iClient3D for WebGL/WebGPU。
必备数据包括:
(1)倾斜摄影三维模型数据:S3M格式的倾斜摄影三维模型及配置文件(*.scp),若无此格式的数据,请参照加载倾斜摄影三维模型操作手册。
(2)二维矢量面数据:矢量面数据与倾斜摄影三维模型位置匹配,完善矢量面数据的属性表;矢量面数据存放于文件数据源(*.udb/*.udbx)中。
在工作空间管理器中选中数据集并打开其属性表,在功能区属性表即可查看、修改数据的属性结构,并且请根据业务需求为矢量数据添加属性字段、完善属性值。
此步骤将S3M格式的倾斜摄影三维模型以三维服务的形式发布到本地或远程服务器上,实现Web网络资源共享。此外还需发布数据服务便于属性查询操作。
(1)在SuperMap iDesktopX 产品的工作空间管理器中,在数据源处右键点击打开文件型数据源,打开存有矢量面数据的数据源(*.udb/*.udbx)。
(2)新建一个球面场景,在图层管理器下选中普通图层,右键点击添加三维瓦片图层。
(3)加载数据后,定位到图层并设置合适观察角度,保存场景和工作空间;保存后须关闭当前工作空间,占用可能导致后续服务发布失败。
(4)启动SuperMap iServer服务:在 %SuperMap iServer_HOME%/bin 目录下,点击startup.bat批处理文件启动服务。
(5)打开浏览器,地址栏输入http://localhost:8090/iserver/manager进入服务管理页面,首页下点击快速发布一个或一组服务按钮。
(6)弹出快速发布服务-选择发布的数据来源对话框,在数据来源处选择工作空间,点击下一步。
(7)弹出快速发布服务-配置数据对话框,点击远程浏览按钮选择前述所保存的工作空间,点击下一步。
(8)弹出快速发布服务-选择发布的服务类型对话框,勾选REST-数据服务和REST-三维服务,点击下一步。
至此,服务发布已配置完成,按照提示点击完成和关闭按钮即可。
如有疑问请参考SuperMap iServer帮助文档发布文件型工作空间。
3.2操作步骤
(1)在操作前请将SuperMap iClient3D for WebGL/WebGPU产品包存放在 SuperMap iServer/webapps 目录下。
(2)进入存放路径SuperMap iServer/webapps,在examples/webgl文件夹下,以文本方式打开dynamicDTH.html范例。
// 加载倾斜摄影三维模型
var promise = scene.addS3MTilesLayerByScp('http://www.supermapol.com/realspace/services/3D-dynamicDTH-2/rest/realspace/datas/Config - 1 /config', {
name: 'oblique photography'
});
// 通过数据服务的形式添加单体化标识面
var dataServiceUrl = 'http://www.supermapol.com/realspace/services/data-dynamicDTH-2/rest/data/featureResults.rjson?returnContent=true'; // 数据服务URL
var dataSourceName = '铁岭矢量面'; // 数据源名称
var dataSetName = 'New_Region3D_1'; // 数据集名称
SuperMap3D.when(promise, function (obliqueLayers) {
camera.setView({ // 先定位,开始渲染定位区域的倾斜
destination: new SuperMap3D.Cartesian3(-2627223.829626321, 3932851.0803870987, 4265288.945477366),
orientation: {
heading: 4.396130342435847,
pitch: -0.43133441484661317,
roll: 0.000007429907218359233
}
});
(3)范例修改完毕,以localhost方式打开dynamicDTH.html页面。如有疑问请参考范例:动态单体化。
3.2操作结果
页面加载完毕,相机飞至倾斜摄影三维模型数据所在位置,鼠标点击模型后可查看动态单体化效果和属性信息,效果如下图: