数据采集

平面识别

启动应用程序之后,在预采集的水平面上方缓慢移动移动设备进行平面识别,在识别的过程中寻找纹理丰富,无反光的区域,同时移动设备的速度要尽量缓慢,避免剧烈运动,抖动和大幅度晃动。这个识别出来的平面就是接下来数据采集的基础面,亦可以理解为地板面。该平面识别成功以后,无需二次识别,它会以此无限的延展,支持远距离的数据采集。

图:平面识别过程

交互式立体采集

采集地板面

地板面只是一个替代性描述概念,它也可以是桌面,路面,楼顶等面。地面对形状和节点数没有要求和限制,可以是规则面也可以是不规则面。

图:采集会议室地面

平面在采集过程中若要减少视觉误差,尽量让移动设备接近要采集的点位,当然远处过不去的点位也是可以采集的,但存在视觉误差,为了减少误差,我们支持了多种捕捉能力以及辅助线,辅助线支持平行面,延长线、垂直线等。

图:辅助线示意图

平面采集之后,也是可以修改的,通过手势可以任意的拖拽节点,调节到理想的位置。

图:节点调节前
图:节点调节
图:节点调节后

拉高成体

地板面采集完成之后,进行立体拉高,拉高支持两种模式,一种是即时拉高,即根据手机的俯仰程度换算拉高的高度。

图:俯仰式拉高

另一种是定长拉高模式,即拉高到给定的数值。

图:定长拉高(1)
图:定长拉高(2)

拉高之后的立体高度和地面的节点都是可以手动调节的。

图:高度调节后效果

采集门窗

立方体采集完成之后才能绘制门和窗,门绘制时捕捉到墙面后会自动将起点捕捉到墙面的底边,从下往上绘制。

图:门窗绘制选择界面

窗绘制时捕捉到墙面之后,根据实际情况自行选点。

图:采集门
图:采集窗

多体采集

完成一个体及其门窗采集之后,可以继续采集下一个立方体,采集和编辑操作与单体采集完全一致。

图:多体采集成果

数据存储

本程序支持数据存储,数据存储于:\SuperMap\SMPlane,数据源类型UDB,数据源名称根据采集时间命名。

图:结果数据源

点击存储之后,会将当前采集状态的所有对象进行存储。如果当前只采集了地板面,那么存储的是地板面数据集(Floor);如果当前只采集的立方体,那么存储的就是立方体的信息,本程序是在地板面数据集中以增加拉高字段的形式存储,数据存储于数据集Height;如果当前既有地板面,又有立方体和门窗,那么这些信息都会被存储,其中门窗存储在Doorwindow数据集中。

图:结果数据集