基于AE的三维城市管理信息系统的研究和实现
2013-09-28史朝兵高俊强屈维玲
史朝兵,高俊强,黄 陈,屈维玲
(1.南京工业大学 测绘学院,江苏 南京 210009)
1 需求分析、开发平台与实用技术
1.1 需求分析
目前,国内城市管理信息系统是结合国内外大型基础地理信息系统软件与可视化开发语言(如VC、Delphi 等)进行的集成式二次开发,现阶段的系统绝大多数都是二维的,功能上已经日趋完善,但在视觉上比较抽象,相对于三维技术日新月异的发展,越来越不能满足普通大众的需求。随着计算机技术、空间技术和信息技术的飞速发展,地图的表现形式逐渐由二维向三维过渡[1]。虚拟现实系统的沉浸感和互动性不但能够给用户带来强烈、逼真的感官冲击,获得身临其境的体验,还可以在虚拟环境中随时获取丰富的数据资料,为规划设计提供可靠的信息支撑[2]。现阶段,系统功能在三维场景可视化、实时漫游等方面取得了较好的成果[3],但在查询和分析领域还处于起步阶段。结合全世界都在大力发展三维城市的大背景,三维技术在城市管理信息系统中的运用和深化也就具备了重要的实际意义。
1.2 ArcEngine技术
在基于组件对象模型的软件开发中,应用程序和其他程序之间通过接口进行通信,接口应满足COM 的二进制标准,以实现对多个接口的支持[4]。ArcEngine 是基于 COM 技术的嵌入式GIS组件库和工具库,对外提供了大量可进行定制、扩展的接口,通过这些对象接口支持地图数据的显示、查询、分析、管理、存储和输出等操作。ArcEngine开发工具包是基于ArcObjects开发出来的,它不能直接运行,必须集成于其他开发平台。使用ArcGIS Engine时, 开发人员可以将GIS功能嵌入到已有的应用软件中,还可以创建集中式自定义应用软件[5]。
1.3 DevExpress第三方控件
DevExpress是 Developer Express Inc.公司针对.NET平台开发的一整套组件解决方案。该产品提供的控件界面美观、功能强大,继承了VS框架的控件功能,并将部分控件进行组合和扩展,实现了完善的功能设计,避免了用户再进行繁琐的代码编写,更能展示出软件程序的专业性。
2 三维城市管理信息系统的总体设计
2.1 系统的框架结构
本系统采用了C/S的设计模式,采用3层框架结构,分别为数据访问层、业务逻辑层和用户展示层,如图1所示。
图1 系统总体框架
2.2 系统的具体实现
系统的具体实现如图2所示。
数据访问层:在对原始数据进行整理入库的基础上,使用数据库访问引擎,借助SQL语句调用和处理数据库中的全部或部分数据。
业务逻辑层:可以对访问的数据进行处理,得到所需要的数据,并展示在用户界面。
用户展示层:利用各种组件对数据进行展示,并充分体现界面的美观性和简易性,使用户达到视觉上的满意,并能在最短的时间内使用该系统处理业务。本系统主要的界面设计为(如图3所示):
图2 3层框架的具体实现
1)工具栏:主要使用DevExpress控件组的ribbon控件,可以将工具按钮动态加入工具栏(主要在Run Designer中操作);
2)主界面:主要包含一个TOCControl控件用以控制图层,一个GlobeControl控件用以展示三维效果,一个MapControl控件用来显示二维图层;
3)状态栏:主要显示系统所处的状态、经纬度等信息。
图3 系统主界面
3 系统的详细设计
3.1 三维建模和数据库设计
面向城市规划虚拟景观由三维地形模型、三维建筑模型与城市基础设施模型3部分组成[6]。本系统利用ArcSDE空间数据库引擎来存储和管理空间地图数据,通过ArcMap、ArcGlobe、ArcScene、3dMax等桌面软件来完成二维、三维地图数据文件以及三维空间模型。在对地物进行建模时,首先要对地物模型进行适当的划分,根据地物模型的不同种类采用不同的三维建模方式,可有效降低三维建模的复杂度,提高系统的处理速度[7]。
图4 数据库设计步骤
如图4所示,数据准备包括地区矢量数据(如道路、平面建筑、水系等)、地形数据(包括高程坐标在内的地区数据)、标识数据(一些地名、路名等)、三维模型数据(利用各种三维专业软件制作的模型,包括建筑物、路灯、植物等)和地面影像数据(主要是增加三维立体效果,包含DOM、DEM数据);数据库设计包括查找资料、制定数据编码标准、设计数据库字典表,设计数据库结构;数据入库包括对数据进行分类和数据入库。表1列举了行政区要素类的属性表的结构。
表1 行政区属性表
3.2 系统的目标及功能
三维城市管理信息系统主要分为图形基本功能和分析计算2个部分,如图5所示。
图5 系统功能模块分类
3.2.1 图形基本功能
图形基本功能主要有对图层进行加载、浏览,对数据进行查询等。
文件操作:包含加载数据、打开工程、保存工程、加载三维数据(3dd格式)功能模块,主要是对原始数据的读入和图形的储存。
浏览工具:包含导航、漫游、行走、飞行等功能模块,主要是方便对三维图形的查看,展示三维系统的效果。
系统缩放:包含图形的放大、缩小、全局展示,主要实现对图形的缩放功能。
选择要素:包含选择、定位和清除选择功能,主要实现对要素的选择、定位等操作。
书签管理:主要是对图像添加和管理书签。
交互式查询:主要包括图形查看属性和按条件查询图形元素功能,实现了图形数据和属性数据相互查看。
1)图形查看属性:点击交互式查询按钮,点击需要查询的区域,就会自动跳出对话框,将包含该区域的图层以树状结构显示在左边的区域。单击其中的要素名称,就可以将该要素的属性信息显示在右边的表格中,如图6所示。
图6 图形查看属性
2)按条件查询图形要素:通过设置一定的查询要求(如特定的字段值或者一段区间内的字段值),就可以查找到符合要求的图形元素。查询代码简介如下:
pQueryFilter.WhereClause = textBoxFilter.Text; //设置查询语句
IFeatureCursor pFeatCursor = m_pFeatCls.Search(pQueryFilter, true);
IFeature pFeature = pFeatCursor.NextFeature();axMap.Map.ClearSelection();
IEnvelope pEnvelope = new EnvelopeClass();
ILayer pLayer = GetLayerFromName(sLayerName);
while (pFeature != null)
{
axMap.Map.SelectFeature(pLayer, pFeature);
pEnvelope.Union(pFeature.Extent.Envelope);
pFeature = pFeatCursor.NextFeature();
}
//突出显示查找到的要素
axMap.Extent = pEnvelope;
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
pActiveView.Refresh();
3.2.2 分析计算
分析计算主要包含表面积计算、土方量计算和缓冲区分析3个功能模块。
1)表面积计算:先利用选择要素工具选择想要计算的面状要素,然后使用表面积计算功能按钮对该区域进行表面积计算。其主要思路是把选择的要素存放在临时创建的shp文件内,把该shp文件与TIN做计算生成需要的shp文件,然后提取shp文件中的要素,对要素中的几何对象进行面积计算,将各要素面积累加,形成该区域的表面积。
2)土方量计算:与表面积计算步骤类似,其主要思路是把选中的要素存放到哈希表中,遍历哈希表,根据高程数据对每一个要素提取最大高程和最小高程,然后根据一定的算法,计算出这个要素的平均高程,减去目标高程,计算出相对高程,最后计算出该要素的表面积,乘以相对高程,就可以算出该要素的土方量。再将遍历的结果累加,最终得到整个选中区域的土方量,如图7所示。
图7 土方量计算结果
3) 缓冲区分析:首先选择一个区域(点、线、面或者它们的组合),获取要素;然后设计一个生成缓冲区的函数,函数代码如下:
public IGeometry buffer(IFeature pFeature, double distance)
{
ITopologicalOperator topolOperator = pFeature.Shape as ITopologicalOperator;
IGeometry bufferGeometry = topolOperator.Buffer(distance);
return bufferGeometry;
}再遍历选中区域的要素,调用buffer函数,分别生成缓冲区;利用IFeatureSelection和ISpatialFilter接口实现与生成的缓冲区有几何相交拓扑关系的几何要素的选择;最后在地图上显示选择要素,展示该区域在一定距离上造成的一个缓冲区波及范围。
4 结 语
在本文所介绍的三维城市管理信息系统中,通过将 GIS 引入到城市规划管理中,改变了传统 OA 简单文字图表的表现形式,实现了图文一体化,满足了实际工作的需要[8]。系统实现了快速、方便、准确地对属性数据和图形数据进行交互式查询和分析的功能,并在三维可视化环境下引入了空间数据,为用户提供了一种身临其境的三维沉浸感,能够方便用户对城市信息进行管理和规划。
[1]申亚鹏,翟辉琴.基于ArcEngine 的三维标绘研究[J].测绘技术装备, 2010(1):36-38
[2]李宗华,黄新,赵中元,等.武汉市三维数字地图系统建设与应用示范[J].地理空间信息,2010(3):1-4
[3]吴飞,龚知凡.三维地理信息共享服务平台实现和应用[J].地理空间信息,2009(5):121-123
[4]潘爱民.COM 原理与应用[M].北京: 清华大学出版社,2000
[5]杨海燕.周荣福, 谷双喜.基于ArcGIS Engine的GIS开发的系统设计与实现[J].国土资源信息化, 2008 (1): 16-18
[6]王海鹰,张新长,康停军.面向城市规划的虚拟景观建设方法的探讨与应用[J].测绘通报,2011(3):29-33
[7]邢海妮,顾庆华,李莉莉.基于ArcEngine 的三维小区信息系统的开发与实现[J].地理空间信息,2009(6):76-78
[8]刘涛,彭清山,张淼.基于GIS的城市规划管理信息系统的研究[J].测绘通报,2011(6):57-59