平面识别
启动应用程序之后,在预采集的水平面上方缓慢移动移动设备进行平面识别,在识别的过程中寻找纹理丰富,无反光的区域,同时移动设备的速度要尽量缓慢,避免剧烈运动,抖动和大幅度晃动。这个识别出来的平面就是接下来数据采集的基础面,亦可以理解为地板面。该平面识别成功以后,无需二次识别,它会以此无限的延展,支持远距离的数据采集。
|
图:平面识别过程 |
交互式立体采集
采集地板面
地板面只是一个替代性描述概念,它也可以是桌面,路面,楼顶等面。地面对形状和节点数没有要求和限制,可以是规则面也可以是不规则面。
|
图:采集会议室地面 |
平面在采集过程中若要减少视觉误差,尽量让移动设备接近要采集的点位,当然远处过不去的点位也是可以采集的,但存在视觉误差,为了减少误差,我们支持了多种捕捉能力以及辅助线,辅助线支持平行面,延长线、垂直线等。
|
图:辅助线示意图 |
平面采集之后,也是可以修改的,通过手势可以任意的拖拽节点,调节到理想的位置。
|
图:节点调节前 |
|
图:节点调节 |
|
图:节点调节后 |
拉高成体
地板面采集完成之后,进行立体拉高,拉高支持两种模式,一种是即时拉高,即根据手机的俯仰程度换算拉高的高度。
|
图:俯仰式拉高 |
另一种是定长拉高模式,即拉高到给定的数值。
|
图:定长拉高(1) |
|
图:定长拉高(2) |
拉高之后的立体高度和地面的节点都是可以手动调节的。
|
图:高度调节后效果 |
采集门窗
立方体采集完成之后才能绘制门和窗,门绘制时捕捉到墙面后会自动将起点捕捉到墙面的底边,从下往上绘制。
|
图:门窗绘制选择界面 |
窗绘制时捕捉到墙面之后,根据实际情况自行选点。
|
图:采集门 |
|
图:采集窗 |
多体采集
完成一个体及其门窗采集之后,可以继续采集下一个立方体,采集和编辑操作与单体采集完全一致。
|
图:多体采集成果 |
数据存储
本程序支持数据存储,数据存储于:\SuperMap\SMPlane,数据源类型UDB,数据源名称根据采集时间命名。
|
图:结果数据源 |
点击存储之后,会将当前采集状态的所有对象进行存储。如果当前只采集了地板面,那么存储的是地板面数据集(Floor);如果当前只采集的立方体,那么存储的就是立方体的信息,本程序是在地板面数据集中以增加拉高字段的形式存储,数据存储于数据集Height;如果当前既有地板面,又有立方体和门窗,那么这些信息都会被存储,其中门窗存储在Door和window数据集中。
|
图:结果数据集 |