廖珊珊,殷 牧
(湖南省地质矿产勘查开发局四一六队,湖南 株洲 412007)
随着计算机技术与虚拟现实技术的快速发展与广泛应用,数字矿山(Digital Mine,简称DM)成为可持续发展的必然趋势。我队将工程测量、矿山测量、三维建模、航测遥感等测绘数据处理方面的开发经验和功能模块进行集成和优化,于2017年7月进行科研立项,成立了专门的项目组,组织开发系统化的功能软件----《采矿巷道三维可视化系统》。
为采矿巷道三维可视化系统集采矿区地表建筑物和地下巷道建模、工作空间数据源管理、场景浏览、图层管理、测量等功能于一体,主要功能模块介绍如下。
涵盖了工作空间、数据源和数据集管理,SuperMap将所有的数据以工作空间的形式进行存储,工作空间中存储的数据包括数据源、地图、布局、场景和资源。本系统通过导入CAD数据来进行地表数据建模。
通过本软件提供的场景功能可以控制场景中的状态条、比例尺、经纬网、海洋、大气、太阳和导航罗盘的显示,也可以进行选择、平移、刷新、全球和全屏操作,还可以进行地表透明度的设置,通过设置地表透明度来观察地下的巷道运行情况。
利用可以向本系统中添加矢量数据、影像数据、地形数据和KML模型数据。
测量工具可以测量物体的地面长度和面积,也可以测量空间长度和面积,还可以测量垂直高度。
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
本系统研发的主要技术路线如下。
首先进行分析,而不是一上手就开始做,而分析的第一步,就是搞清楚程序的功能是什么,它能够做些什么。把需求进行汇总,明确程序要实现的功能。
分程序界面和程序结构两部分实现程序。引用程序集,创建项目和窗体后从工具箱中加入控件,对界面进行修改;分别编写各功能模块,依次定义类,编写源代码并进行代码注释。
VS中的调试默认设置为/optimize-和/debug:full开关,生成的程序集为调试版本,生成的IL代码和最终的本地代码不会被优化,生成时除了主要文件外,还包括调试信息;发布默认设置为/optimize+和/debug:pdbonly开关,不包含调试信息,生成的IL代码和最终的本地代码均会被优化。最终,我们需要的将是“发布”版本的程序。
可以使用VS或其它打包软件,将程序打包为安装文件,但打包程序集最简单的方式就是直接复制所有文件。卸载程序集时,删除文件即可。之所以能实现这份简单的安装/移动/卸载,是因为每个程序集都用元数据指明了自己引用的程序集,不需要依靠注册表设置。
完成系统的封装并申报计算机软件著作权登记证书。
在数据被设计成两张表,一张为巷道点表,另一张为巷道线表,巷道点表中ID为数据库表自带的唯一标识字段,Pt_id表示巷道点,由三部分组成,包括点所在的层、所属的线和点号,比如:250_1_1表示250高程面的第一条巷道线的第一个点;pt_x表示巷道点X的坐标;pt_y表示巷道点Y的坐标;pt_z表示巷道点Z的坐标;info表示点附加的信息。
文件菜单包括“工作空间”、“数据源”、“新建数据集”和“导入数据集”等功能,SuperMap是以“工作空间”的形式来保存数据的,用户可以通过新建三维巷道的数据源,然后向数据源中导入CAD数据。本系统安装目录下已新建好巷道工作空间“XD”直接打开即可。
“工作空间”存储了一个工程项目中所有的数据源,以及地图的组织关系,“工作空间”通过其中的数据源集合对象(Datasources)和地图集合对象(Maps)来管理其下的数据源和地图等。
Datasources:数据源集合。对数据源进行管理,其中存储的是每一个数据源逻辑上的连接信息,实际的数据源都是存储在数据库或者SDB中。Datasources可以管理多种类型的数据源,实现对多种类型和来源的数据源进行无缝管理。
数据集是同种类型数据的集合,比如:点数据集、线数据集。数据集类(Dataset)是所有数据集类型的基类。一个数据源通常由多个不同类型的数据集组成。用户根据自己的实际需要,或者按照数据集的特征、或按照不同的使用目的来组织它们,把它们存放到不同的数据源中。
场景菜单中可以控制三维场景的属性和鼠标选择的状态,当选择“全球”命令时,视线将由局部转为全球状态。当开启地下属性时,可以选择地表的透明度以便来观察地下巷道。
根据要素的空间特征的不同,矢量数据集又分为点数据集、线数据集和面数据集等。
从在操作过程中,首先向当前场景中添加地形DEM数据,双击“DatasetDEM_1”数据集,并且选择“将数据集作为地形加载”。再将矿区影像添加到场景中,直接双击“马_影像”。
接下来进行地表的建模,通过二维的面数据拉伸贴图快速生成建筑物模型。参数设置:选择建模图层为二维的面图层,高度模式为相对地表。高度模式用于指示SuperMap组件产品解析三维数据海拔高度值的方式有:贴地表模式、距地相对高度模式、绝对海拔模式、相对地下模式、地下相对模式、地下绝对模式等。
贴地模式为三维数据的海拔高度完全忽略,各三维对象将依据其经纬度信息,根据地形起伏状态附着在地形表面,即相对于地形表面的高度为零。
相对地表模式为海拔高度值是以经纬度坐标值正下方的地平面为基准的海拔高度。例如,在山区中架设电线杆,每根电线杆的高度假设为25米,选择距地相对高度模式,就可以实现与客观现实一致的效果,即每根电线杆的底端位置随着地形上下起伏。
当前高度模式为绝对高度模式,将三维面几何对象添加到具有地形数据的三维场景中,若该三维面几何对象的边界节点高程值均为5800米,则该对象将忽略地形起伏,在距离水平面5800米高度处显示。地下相对模式,该高度模式以地形表面为基准,与相对地表模式(RelativeToGround)高度模型正好相反,用于地下场景的浏览。
添加“road”道路数据集到场景中,并将道路以“县、乡道路(1)”的图层样式进行符号化,最终整个地表建模的效果如图1所示。
图1 地表建模效果图
GeoStyle3D.BottomAltitude=-100时,表示对象放置于地表以下100米处,基准面为地形表面。手动输入建筑物的高度,点击选择侧面图片和选择顶面图片。添加“road”道路数据集到场景中,并将道路以“县、乡道路(1)”的图层样式进行符号化,最终整个地表建模效果。接下来进行地下的巷道建模,点击“巷道建模”,选择“场景”、“地下属性”开启地表透明度,使得地下巷道可见,如图2所示:
图2 地下巷道内部图
《采矿巷道三维可视化系统》能直观显示地下采矿区域及巷道的分布走向,以及巷道和地面的位置关系,实现地下巷道的可视化表达、空间分布优化分析。通过该软件,可应用于地质勘探、资源评估、面积量测、灾害抢险等方面,可极大提高工作效率,节省生产成本,确保产品的质量,符合现在数字化矿山的高级软件。