基于Skyline的三维地下管线系统的设计以石家庄市为例,采用B/S架构,以Skyline为开发平台,c# 为开发语言,构建了三维数字城市的地下管道系统,通过3DMAX三维仿真技术、GIS技术以的有效集成,实现了数字城市里地下三维管线生成的新模式。
结果表明:系统具备数据管理查询、管线自动生成、下水管口定位等多种空间辅助决策功能,具有较好的可行性和实用性,但由于系统较复杂,需要在实际应用中不断地改进和完善.标签:3DGIS;Skyline;3DMAX引言城市化的快速发展,给城市管理者带来了前所未有的挑战。
当前,中国的城市化发展是社会发展的必然结果,具有不可扭转的发展趋势。
但是城市化导致环境空间和资源分配的矛盾也越来越尖锐,一些城市管理本身的问题也随之凸显。
本文采取由三维城市化理论到实践的研究思路,首先对3DGIS理论、三维建模技术进行了研究探讨,提出城市三维地理信息系统的技术路线,并开发一套基于Skyline的城市三维地理信息系统。
1 3DGIS理论、三维建模技术探讨1.1 3DGIS理论二维GIS一般情况是将实际的三维事物以二维平面图的方式表示,在表达空间信息上具有一定的局限性,这导致它在处理空间数据尤其是多维空间数据时存在缺陷。
[1]因此,用三维GIS的表达方法去表示和处理现实世界中三维对象和空间数据,既可以突破常规二维表示形式的不足,也可以包容几乎所有丰富的空间信息。
[2]近期,三维GIS有很快的发展动力,其中新兴技术的快速发展和三维空间信息需求是其发展的两个驱动因素。
[3]1.2 三维建模技术本文采用CAD、3DMAX和Photoshop等软件协作进行三维建模软件景观构建。
制作流程为:CAD中进行对地物进行简化、删减,建立二维模型——3DMAX 中制作模型主体——3DMAX中进行模型纹理贴图——模型以.X格式导出——模型导入到TerraExplorer Pro中,其中模型纹理的贴图是通过Photoshop对户外照片进行处理所得。
2 系统的主要功能本系统采用Windows XP SP3,运用C#语言在Visual Studio 2005平台上对ArcGIS Engine9.3及Skyline Globe 6进行二次开发。
系统集成了二三维浏览、创建、分析和查询四大功能,有利于对城市信息进行多层次、多视角的三维显示,为城市管理者提供了适合管理者管理的城市三维地理信息。
系统的主要功能如下:2.1 文件的管理①文件:对于fly三维场景文件的打开、保存和另存为。
②选择:支持单选和框选,包括选择空间信息、选择属性和选择区域;③编辑:对于地物的编辑,包括粘贴、复制、剪切和删除;通过对地物信息框内各属性的设置,可改变地物的名称、位置、高度、角度、透明度、线条及填充颜色、缩放比例等。
2.2 工程信息①工程设置:对于工程的设置,包括三维场景、光照的显示、时间的显示。
②地形设置:包括隐藏地形、地下模式、地形修改、地形透视和地形透明度设置。
地形是指TerraBuilder生成的mpt文件,就是地表的三维模拟。
③显示模式:对于二三维地图窗口的管理,可设置二维窗口单独显示或者三维窗口独立显示,或者二三维窗口同时显示,并可控制是否处于联动状态。
2.3 视图①窗口布局:对于三维地图窗口的设置,包括常规、最大化和全屏设置,以及对信息树窗口和导航地图窗口的勾选设置。
②窗口部件:包括导航控制、中心点、状态栏、时间控制、范围控制和地理控制的勾选设置。
窗口部件显示三维窗口内的比例尺、中心点的信息、有助于窗口内的漫游和对场景从整体上的把握。
③环境效果:水流和空中的云显示设置有助于场景的逼真显示。
2.4 创建①二维图形的创建:包括标签、图片、线、面、几各种二维图形。
②三维地物的创建:包括三维模型、建筑物和三维图形。
③管线的生成:可手动输入各项参数生成一段管段,也可从Excel表中或者数据库中读取管线属性表自动生成管线。
2.5 分析①测量:包括垂直距离、水平距离、空间距离和面积的量算。
②地形分析:最佳路径分析、地形剖面、淹没分析、等高线生成和坡率生成。
③视线分析:包括通视分析、视域分析和威胁半球分析。
④阴影分析:在显示光照的前提下进行阴影分析。
2.6 导入及工具①三维模型的导入:对Skyline支持的三维模型的导入。
②二维文件:包括标准的GIS文件,比如shp文件、影像、DEM以及图片。
③工具:包括抓屏、地形提取、XPC、XPL文件制作等功能。
3 成果展示这一部分是整个系统的具体体现,详细介绍了实现的功能与效果。
利用c# 作为开发的基础语言,Skyline作为系统二次开发的平台,初步实现了三维基本操作、信息查询、三维漫游、专题信息的三维可视化管理等功能。
3.1 创建地下管线创建三维地下管线的传统方法是在模型制作软件例如3dmax中根据管线的属性信息制作成三维管线模型,再导入到三维城市场景中,该方式过程繁琐,效率地下,更重要的是需要将三维模型手动导入到场景中,因此管线的位置会出现偏差,精度得不到保证。
而该功能模块解决了这一问题,通过管线的坐标值等属性信息在三维场景中生成管线数据模型,能够快速、准确的创建地下管线。
该功能的设计是本论文重点和难点也是创新点。
该功能模块主要有以下几个特点:(1)内部生成:是在三维场景内部生成地下管线,避免了外部导入模型放置时出现的位置偏差等问题。
(2)精度高:是以管线的起止点坐标值等属性信息为基础生成管线模型,所以管线模型的位置极为精准。
(3)效率高:避免了传统方式中的多软件协作的制作模式,只需设置管线的常规属性即可批量生成。
3.1.1 地下管线概况城市地下管线是城市基础设施的重要组成部分,触及城市的各个角落,与人民生活息息相关,是城市赖以生存和发展生命线[4]。
城市地下管线具有规模大、范围广、管线种类繁多、空间分布复杂、变化大、增长速度快和形成时间长等特点,如图1所示。
城市地下管线可以分为排水、给水、工业、电力、煤气、热力、电信和有线电视8大类。
每种管线还可以按照其用途的不同或者传输的物质的不同再次分类,例如,排水系统可以分为雨水、污水和雨污合流等。
城市管线的结构基本是一致的,都由管点、管线及附属设施三部分组成。
每条管线又可以分为若干条管线段,而管线段是两个管点之间的连接管的通称。
管点的基本几何结构可以分为以下几类:管线分支点、管线交叉点、管线转折点、管径变化点、管线埋深变化点、附属设施中心点等。
[5]3.1.2 功能设计思路地下三维管网可以简化为按照一定规则排列的三维管段的集合,其基本组成单元是三维管段即圆柱体。
而TerraExplorer pro中object菜单下的create pipe 功能可以创建圆柱体,并可以编辑圆柱体的常规属性,因此可调用TerraExplorer API 中能够实现该功能的接口,通过程序来自动创建圆柱体。
在用程序生成圆柱体的过程中,设定圆柱体的属性就成为该模块设计的主要内容,而其中的关键就是精确的定位圆柱体的空间位置。
可以先根据管段的起点或者止点空间坐标,包括x、y、z方向上的坐标,确定圆柱体一端的空间位置,再根据起止点的空间坐标计算出圆柱体偏航Yaw、斜度Pitch和旋转Roll的角度即可。
三维管线的基本属性包括起止点的x、y、z方向上的坐标、管径、透明度、截面多边形面数、线条颜色、填充颜色、管线名称等。
3.1.3 功能实现将三维管段的空间坐标信息以记录的形式储存于数据库表中,每条记录都与管段一一对应。
使该功能模块能够逐记录进行读取,每读取一条记录就生成一段圆柱体。
主要过程如下:(1)连接数据库,确定所要生成的管线属性所在的表;(2)读取相应记录的起止点的x、y、z方向上的坐标、管径、透明度、截面多边形面数、线条颜色、填充颜色、管线名称等字段值;(3)根据属性信息,利用object菜单下的create pipe方法逐个生成管段:3.2 二三维联动三维GIS是从二维GIS发展而来的,侧重于三维可视化和虚拟漫游,也具有对三维模型进行创建、管理的能力,但分析功能还比较弱,局限于体积测量、三维建模、纹理贴图、模拟飞行、视角判断等简单的分析功能。
二维GIS具有很强的分析能力,例如路径分析、缓冲分析、空间索查询、平面测量、渲染分析等,但是它缺乏有效的三维空间表达能力。
所以如何在同一框架体系下将二维GIS与三维GIS进行集成并实现联动,使两者优势互补,最大程度地发挥系统功能成为一个急需解决的问题,[6]如图2所示。
3.2.1 ArcGIS Engine介绍ArcGIS Engine是ESRI在推出ArcGIS9.0时推出的基于COM(组建对象模型)技术的GIS控件,现在已经发展到ArcGIS Engine10。
ArcGIS Engine是一组完备的并将ArcObjects打包嵌入式的GIS组件库和工具库,是开发人员用于建立自定义应用程序。
ArcGIS Engine Developer Components包含了进行快速开发所需的全部可视化控件,如MapControl、PageLayoutControl、ToolbarControl等控件,从而提高开发效率。
[7]3.2.2 功能设计思路本功能模块采用“一联两线”的设计思路,其中“一联”是指一个主要关联,通过地理坐标的关联作用来实现二三维GIS的通信,“两线”即两条(二维GIS、三维GIS)独立的技术开发路线。
[8]当三维窗口经过平移、缩放、旋转和滑动后,二维窗口将展现同一范围内的的二维图层。
同样的,当二维窗口的场景经过放大、缩小和平移后,三维窗口将展现同一区域内的的三维景观,这样,用户在使用系统时可从同时从二维和三维两个不同的角度进行观察和分析。
3.2.3 功能实现由二维联动三维的实现过程为:通过ArcGIS Engine的axMapControl中属性Extent可以得到当前二维窗口四个角的地理坐标,进而可求出窗口的中心点,例如点A(X,Y)。
通过TerraExplorer Pro的TerraExplorerX.Navigate接口的JumpTo 方法可以将三维窗口的中心点移到A点,即可实现二维联动三维。
主要代码如下:4 结束语GIS是一门交叉性学科,本研究开发一套基于Skyline软件的城市三维地理信息系统,涉及到众多相关的研究领域和很多相关技术,本文阐述了城市三维地理信息系统的研究现状,有利于帮助城市管理者处理城市环境空间和资源分配矛盾的问题。
并对3DGIS技术从理论到三维建模的应用进行了介绍。
重点介绍了系统的主要功能,包括地下管线创建和二三维联动功能模块的设计思路及开发实现。
城市三维地理信息系统的开发和实现是一个艰难和长期的过程,系统的功能还不够完善,几项重要的功能也不甚成熟,还要在多方面进行完善、研究。