倾斜摄影模型通常被称作“一张皮”的模型,为发挥倾斜摄影模型应用价值,必须对倾斜摄影模型进行单体化处理。超图三维率先采用了模型叠加矢量面的方式对倾斜摄影模型进行单体化,此方式操作简单,并且在矢量面数据的属性表中存储业务方面的各类属性信息,实现单体化的同时能够在倾斜摄影模型进行属性查询。
目前,SuperMap iClient3D for WebGL提供了众多示范程序,其中“倾斜摄影属性查询”范例便演示了倾斜摄影模型实现单体化选择和属性查询的效果。
图 1:倾斜摄影属性查询范例效果
本文档将依照范例的效果,指导用户如何利用自己的倾斜摄影模型在WebGL客户端上实现属性查询,本操作主要流程如下:
必备数据包括:
为做演示,笔者制作修改了一份矢量面数据,其属性结构如下图,其中“Name/名称”和“Des/描述”字段是本示例的业务字段,将用于属性查询。
图 2:矢量面属性表的属性结构
在“工作空间管理器”中选中数据集并打开其属性表,在功能区“属性表”选项卡“编辑”组中单击“属性结构”,即可查看、修改数据的属性结构,并且请根据业务需求为矢量数据添加属性字段、完善属性值。
为了能够像范例一样在选中模型时展示图片,可选地准备了图片资源(*.jpg),将图片资源存放于“%WebGL产品包%\examples\images”文件夹下。图片的名称与矢量面属性表的“Name/名称”字段值相同。
通过模型单体化处理,相当于为倾斜摄影模型“绑定”位置匹配的矢量面数据。
(1). 在“工作空间管理器”“数据源”处打开存放有矢量面数据的文件型数据源(*.udb);
(2)在SuperMap iDesktop桌面产品的“倾斜摄影”选项卡“WebGL客户端”组单击“模型单体化”按钮,如下图所示。
图 3:点击“模型单体化”功能
(3). 弹出“模型单体化”对话框,如下图所示。
图 4:“模型单体化”对话框
(4). 在对话框的“倾斜摄影数据”处填入倾斜摄影模型配置文件(*.scp)存放路径,单击右侧图标按钮选择文件路径,或在文本框中直接输入。
(5). 在对话框的“关联设置”处可设置矢量面数据所在的数据源、数据集和关联字段,具体说明如下:
(6). 在对话框的“目标路径”处填入经单体化处理后目标文件存放路径,单击右侧图标按钮选择文件路径,或在文本框中直接输入。
(7). 设置完以上参数后,单击“确定”按钮,等待处理完成。
操作完成后,目标路径下产生了一个*.scp文件及多个存放有模型的文件夹,其目录结构和文件数量及名称均与原文件一致。为验证单体化效果,在SuperMap iDesktop中以“添加OSGB缓存图层”方式将此单体化处理的模型添加到球面场景,定位到该图层,在场景中鼠标单击某一房屋模型,该模型被高亮显示,由此可见,单体化处理成功。
图 5:点击单体化后的倾斜摄影模型高亮
为提升WebGL客户端解析和浏览效率,在此步骤将OSGB格式的倾斜摄影模型转换为S3M格式的三维切片缓存,利用SuperMap iDesktop 桌面产品提供“生成S3M数据“功能按钮实现。
(1).打开SuperMap iDesktop,在“倾斜摄影”选项卡“WebGL客户端”分组中点击“生成S3M数据”按钮。
图 6:点击“生成S3M数据”工具
(2).弹出“OSGB->S3M”对话框,如下图所示。
图 7:“OSGB->S3M”对话框
(3).在对话框的“倾斜摄影数据”处填入scp配置文件存放路径。
(4).在对话框的“目标路径”处填入转换后目标文件的存放路径。
(5).在对话框的“压缩类型”处提供了 普通PC设备、Android系列设备、IOS系列设备三种选项,请根据使用终端选择。
(6).设置完以上参数后,单击“确定”按钮,等待转换完成。
“生成S3M数据”操作结果如下图右方,此步骤生成了与原始文件结构一致的目标文件夹;分别打开任一模型文件夹,可以看到OSGB格式模型与S3M格式模型的一一对应关系,如下图。
值得注意的是,生成S3M格式的三维切片缓存后,模型数据量大幅度减小。
图 8:生成S3M数据结果(图右)及模型对应关系
在此步骤将S3M格式的倾斜摄影模型以三维服务的形式发布到本地或远程服务器上,实现Web网络资源共享,为实现属性查询,还将发布一个数据服务。
(1).在SuperMap iDesktop桌面产品的 “工作空间管理器”中,在“数据源”处右键点击“打开文件型数据源”,打开存有矢量面数据的数据源(*.udb);
(2).新建一个球面场景,在“图层管理器”下选中“普通图层”,右键点击“添加OSGB缓存图层”,选择“生成S3M数据”操作生成的*.scp配置文件。
图 9:向场景添加OSGB缓存
(3).加载数据后,定位到图层并设置合适观察角度,保存场景和工作空间;保存后须关闭当前工作空间,占用可能导致后续服务发布失败。
(4).启动SuperMap iServer服务:在 %SuperMap iServer_HOME%/bin 目录下,点击“startup.bat“批处理文件启动服务。
(5).打开浏览器,地址栏输入http://localhost:8090/iserver/manager 进入“服务管理“页面,“首页”下点击“快速发布一个或一组服务“按钮。
图 10:快速发布一个或一组服务
(6).弹出“快速发布服务-选择发布的数据来源”对话框,在”数据来源“处选择”工作空间“,点击”下一步“。
图 11:数据来源选择工作空间
(7).弹出“快速发布服务-配置数据“对话框,点击”远程浏览“按钮选择前述所保存的工作空间,点击”下一步“。
图 12:选择工作空间配置数据
(8).弹出“快速发布服务-选择发布的服务类型“对话框,勾选”REST-数据服务“和”REST-三维服务“,点击”下一步“。
图 13:勾选三维服务和数据服务
至此,服务发布已配置完成,按照提示点击“完成“和”关闭“按钮。
服务发布完成后,将在服务列表中显示该三维服务,如下图所示。
图 14:服务列表中显示新发布的服务
发布了三维服务以后,在此步骤中便可通过WebGL客户端浏览地形数据。
提示:在操作前请将WebGL产品包存放在 %SuperMap iServer_HOME%/webapps 目录下。
(1) 获取三维服务url地址,按照如下顺序点击获取:
图 15:复制url地址
(2) 进入WebGL产品包存放路径(%SuperMap iServer_HOME%/webapps),在“examples”文件夹下,文本方式打开“S3MTiles.html“范例,修改如下图的内容。
图 16:修改范例部分参数
(3) 获取数据服务url地址,按照如下顺序点击获取:
图 17:复制“数据服务的根节点”页面的url地址
(4)在“S3MTiles.html“范例中设置属性查询参数,即修改layer.setQueryParameter()部分,如下图:
图 18:修改范例属性查询参数
(5) 范例修改完毕, 以localhost方式打开“S3MTiles.html “网页,浏览器输入地址即为:http://localhost:8090/%WebGL产品包%/examples/S3MTiles.html
打开网页后,相机飞至倾斜摄影模型所在位置,点击任一模型,模型高亮并弹出窗口显示属性,效果如下图:
图 19: 在倾斜摄影模型上进行属性查询效果图
在整个操作流程中,有以下重点供参考和理解: