中国民航机场建设集团有限公司华北分公司 北京市 100621
摘要:随着计算机信息技术的发展,传统的二维地形图模型已不能满足机场规划设计需求。将遥感技术、虚拟现实技术结合起来从而快速、高效、自动建立三维可视化地理环境,是机场规划设计一体化、智能化研究领域亟待解决的课题。本文对机场规划三维建模提出了整体的思路方法,从数据的获取和采集、参数化模型构建等方面着手,对机场规划设计中景观快速自动建模方法进行研究,并针对非洲等欠发达地区,测绘水平低,资料不全的情况,研究利用Google Earth进行数据采集、整理,从而为机场规划三维设计提供基础数据。
关键字:机场规划设计,地理信息系统,三维,快速建模
一、景观建模技术及数据获取
国内外出现的景观建模方式,主要有以下三种:基于二维GIS数据库的三维扩展 、基于三维建模工具的建模方法、数字地形叠加航空航天遥感影像、基于真三维空间数据模型的方法 。考虑到机场规划设计所需的精度,比较建立景观三维模型的方法,采用了基于二维GIS 的建模方法。
1.1 基于二维GIS 的建模方法
经过多年的积累,目前的二维GIS的数据相对充分,在这些数据的基础上进行必要的三维扩展是建立三维景观的一种重要的途径。虽然二维GIS数据库中没有存储建筑物的高程信息,但在其属性中保存了层数信息,因此可以通过使用假定的层高(例如住宅楼每层3m、商业楼每层3.5m等)和模拟的纹理来构建三维建筑物对象,即在二维GIS基础上另外添加一些信息(如房屋高度、墙面纹理、规则屋顶等)来构建三维景观。
1.2 景观三维信息获取
通过遥感卫星或者飞行器获取的影像一般造价较高,需要大量资金投入进行购买,增加了景观建模的造价。Google Earth软件的基础数据是高分辨率影像和航片,并且是完全免费使用的。Google Earth软件提供了二次开发的接口,所以在本研究中对其进行二次开发从而实现影像及空间坐标信息的批量提取。解决了非洲欠发达地区机场规划设计中数据资料欠缺的问题。
1.2.1空间坐标数据的批量获取
Google Earth上的数据是免费提供给用户的,并且其精度在某些区域能够满足三维场景所需数据的精度要求,利用Google Earth COM API组件对Google Earth进行了二次开发,批量的提取欲建模区域的空间地理坐标数据,从而实现了空间数据自动、快速、大量提取。为三维场景的建立做好地面空间数据的支持。在大量地面空间数据的基础上,利用TIN模型建立欲建模区域的DEM数据。其流程如图1-1所示:
图1-1 空间坐标数据的批量采集及处理流程
考虑到进行三维建模所需的空间坐标数据精度以及Google Earth软件的实际应用效果,利用SetCameraParams函数进行设置操作,在Google Earth的视图区域内即可利用GetPointOnTerrainFromScreenCoords函数进行定点坐标数据的获得,主要代码如下:
IPointOnTerrainGE gePoint; //定义IPointOnTerrainGE类的对象
gePoint = GeApp.GetPointOnTerrainFromScreenCoords(x, y); //获取用户输入的当前屏幕坐标
dlon = gePoint.Longitude;//获取地理坐标的经度
dlat = gePoint.Latitude; //获取地理坐标的纬度
geoElv = gePoint.Altitude;//获取地理坐标的高程
通过以上步骤获取的地理坐标经纬度是秒,下面的代码实现的是将 将地理坐标的单位转换为度、分、秒的形式:
geoLon1 = Math.Floor(dlon/3600);
ta = dlon-(geoLon1 * 3600);
geoLon2 = Math.Floor(ta/60);
tb = ta - (geoLon2 * 60);
geoLon3 = tb;
geoLat1 = Math.Floor(dlat / 3600);
da = dlat - (geoLat1 * 3600);
geoLat2 = Math.Floor(da / 60);
db = da - (geoLat2 * 60);
geoLat3 = db;
此时得到的坐标数据即为经纬度坐标且单位为度、分、秒。
利用以上的方法在Google Earth的视图区域内取400个点,经过计算相邻两点之间的距离大约为40m,利用该精度下的控制点可以满足机场规划三维环境所需的数字高程模型。
1.2.2航片的批量获取
利用Google Earth COM API对Google Earth 进行二次开发,针对欲建模区域的范围内批量自动的提取航片,并对所提取的航片进行空间信息定位,实现航片的无缝拼接,从而为三维环境模型提供贴图数据,以及景观的自动建模提供基础数据,其流程如图1-2所示:
其主要代码如下:
IntPtr hRenderWnd; //定义Google Earth客户端视图窗口句柄
hRenderWnd = (IntPtr)GeApp.GetRenderHwnd();//获取客户端视图窗口句柄(Google Earth的视图窗口)
图1-2 航片批量采集及处理流程
RECT rcDIB;//定义视图窗口的区域
GetWindowRect(hRenderWnd, out rcDIB); //获取视图窗口的区域
int Width=rcDIB.right-rcDIB.left; //获取视图窗口的宽度
int Height=rcDIB.bottom-rcDIB.top; //获取视图窗口的高度
SaveScreen(hRenderWnd, Width, Height); //保存视图窗口到文件(bmp)
其中SaveScreen为所创建的StartGEC类的方法,StartGEC类是用于提取欲建模区域内的空间地理坐标和正射影像图的类,可以批量获取欲建模区域内的坐标信息和影像信息。
SaveScreen函数的主要伪代码如下:
public bool SaveScreen(IntPtr hRenderWnd, int Width, int Height)
{
IntPtr dc = GetDC(hRenderWnd);//获取Google Earth视图窗口的设备上下文
Graphics g = Graphics.FromHdc(dc); //由Google Earth视图窗口的句柄创建一个新的Graphics对象
Bitmap MyImage = new Bitmap(w, h, g);//新建Bitmap对象
Graphics g2 = Graphics.FromImage(MyImage); //根据屏幕大小创建一个与之相同大小的Bitmap对象
IntPtr dc3 = g1.GetHdc();//获得屏幕的句柄
IntPtr dc2 = g2.GetHdc();//获得位图的句柄
BitBlt(dc2, 0, 0, w, h, dc3, 0, 0, 13369376); //把当前Google Earth视图窗口内的图像捕获到位图对象中
MyImage.Save("file.bmp", ImageFormat.Bmp); //把位图对象保存到文件
};
通过以上方法得到欲建模区域内的航片信息,为了方便使用将这些影像图进行拼接处理,本着面向对象的思想在Visual Studio 2017中可以很容易实现。
二、景观建筑物矢量化
为了获取建筑物实体建模所需的基础数据,考虑到二维GIS 本身具有较完整的数据库,因此直接从二维GIS数据及现有测绘数据转换到三维景观模型是一条经济快捷的有效途径。使用简单的几何体建立了拟建厂区范围内的建筑物模型。使用建筑物高度和模拟纹理等属性参数来构建建筑物对象,即在2DGIS 基础之上另外添加一些信息(如房屋高度、墙面纹理、规则屋顶等)来构建三维景观模型。建立的景观精度可以满足机场规划设计。
本研究使用了GIS 开发平台SuperMap Objects以及Visual Studio 2017工具进行开发,从而实现对欲建模区域航片的导入、建立其影像金字塔、配准、添加景观模型对象等一系列的功能,为后期的景观自动建模提供基础数据。在这部分中最重要的是实现自动提取景观建筑物的大地坐标,例如对于楼房建筑物,可以提取其边界的坐标信息;对于道路,河道及铁路等景观建筑物,可以提取其中心线的坐标信息;同时提取的还有在建立景观对象时人工输入的相应的属性数据,这些数据都是对其进行机场三维建模的重要的参数。
三、景观参数化自动建模
在本设计研究中主要是利用Ruby脚本语言对SketchUp进行开发,利用其三维建模的优势,实现三维选线设计中景观快速自动建模。
在以上的研究内容中,景观的空间坐标位置和景观对象的属性信息可以获取并为三维建模提供基础数据,在这些数据的基础上,编写SketchUp的脚本程序,程序编写的目的是能够自动读取提取出的景观空间和属性信息,并把这些信息作为参数,利用SketchUp这个三维建模软件自动建立三维景观模型,并将每个模型导出为3ds的格式,同时也会建立一个全面的三维场景,机场规划设计时使用。
四、结论
科学计算可视化过程中,为了实现机场规划三维设计,必须进行景观建模,模拟工程周边环境。
(1) 研究分析了基于Google Earth的数据采集方法,为机场规划设计中景观快速自动建模提供基础数据;
(2) 利用Supermap Object组件及Visual Studio 2017进行开发实现了栅格数据集的矢量化,从而建立机场规划范围内每个建筑物对象的建模信息;
(3) 在建模信息的基础上利用编写的SketchUp脚本程序实现了机场规划设计景观快速自动建模;
本文虽然在理论方法及应用方面作了一些研究。和探索,但由于作者水平及时间的限制,还有许多方面的工作需要进一步完善,比如景观模型的三维效果略显粗糙,应在参数化建模过程中增加能够提高景观建筑物逼真度。
参考文献
[1]钱炳华,张玉芬. 机场规划设计与环境保护[M].北京:中国建筑工业出版社,2000.
[2]曾旭东,赵昂. 计算机辅助设计的发展趋势[J]. 重庆大学学报, 2006, 28(1):21-24.
[3]赵红红. 信息化建筑设计-Autodesk Revit[M]. 北京: 中国建筑工业出版社, 2005. 10.
[4]傅筱从. 从二维走向三维的信息化建筑设计[J]. 世界建筑, 2006, 1(9): 153-156.
[5]张正栋,胡华科. SuperMap GIS应用与开发教程[M]. 武汉: 武汉大学出版社, 2009.
[6]张祖勋,吴军,张剑清. 建筑物场景三维重建中影像方位元素的获取方法[J]. 武汉大学学报. 信息科学版, 2006,28(3): 265-271.
论文作者:李庆兵
论文发表刊物:《基层建设》2018年第27期
论文发表时间:2018/11/9
标签:建模论文; 景观论文; 数据论文; 坐标论文; 视图论文; 机场论文; 建筑物论文; 《基层建设》2018年第27期论文;