论文部分内容阅读
[摘 要] 基于ArcGIS软件中间件,完成地下管线三维空间虚拟现实仿真的理论探讨、方法技术的实现,并按照软件工程面向对象的设计方法,完成地下管线三维空间虚拟现实仿真系统的软件设计。该研究成果将涵盖水、电、气、通讯、热力等地下管线,为其提供三维空间虚拟现实仿真系统设计、监控、管理与维护方面的信息平台。
[关键词] 三维, GIS,地下管线
通过本课题软件产品化设计和专业GIS设计的理论、技术研究和软件产品实现,旨在为城市建设、规划部门、专业管线单位提供一个满足如下基本要求的稳定、成熟、高效、可扩展并可持续开发应用的城市地下综合管线三维空间虚拟现实仿真信息管理平台:
●消除城市管线安全隐患、实现城市可持续发展
●实现城市高效率、高质量运转
●实现行业数据共享
●确保管线的专业分析和设计
1、三维GIS 的构建基础
如何精确地表现三维对象几何位置与空间拓扑关系,如何真实地展现三维场景是构建一个三维GIS系统的重要因素。另外,三维GIS需要直接在三维空间中进行空间操作与分析,连同对空间对象进行三维表达与管理,如何流畅地实现场景的交互操作,如何更好地完成对模型的空间分析三维化是构建一个三维GIS系统,而不是一个三维场景显示系统的重要因素。通常构建一个三维GIS系统分为场景建模和场景驱动两个部分。场景建模是将要模拟的场景和对象通过数学方法表达成存储在计算机内的三维图形对象的集合,包括对建模数据的采集、必要的数据处理和具体的模型构建。场景驱动则是对所建立的三维场景进行具体的开发与运用。包括三维可视化和用户在构建的虚拟场景中的显示、漫游、浏览及对三维空间的查询分析等交互的实现。
2、基于SketchUp的场景建模方法
SketchUp可以极其快速和方便地对三维创意进行创建、修改和渲染。在SketchUp中建立三维模型就像使用铅笔在图纸上作图一样方便,SketchUp本身能自动识别构图的线条,加以自动捕捉。它的建模流程简单明了,就是画线成面,而后挤压成型,这是建筑建模最常用的方法。可以利用SketchUp批量导入二维的GIS数据,并利用其方便、快捷的三维建模功能实现三维系统的场景建模。
2.1 建模数据的获取
在三维GIS中,三维模型的构建需要三维的空间数据(包括三维位置数据、高程数据)、影像数据和数字高程模型数据,进行空间查询时还需要地物的属性数据[3]。不同的数据在获取方法也不尽一样,需根据实际情况进行,但都要充分利用目前已有的各种数据。三维空间数据是进行三维建模和可视化的基础,主要包括平面数据、高度数据、数字高程模型数据。三维空间数据的获取中最重要的是二维矢量数据的获取和处理。现有的二维GIS中除了二维空间数据之外,缺少建筑物垂直面的几何信息,并不具有直接完整的第三维信息,一般只有建筑物相对的高度属性,而且不同的数据库往往具有不同的第三维信息,如楼层数信息、相对高度或绝对高度,其中建筑物层数和层高所反映的高度信息与实际差别一般不大,可以作为建筑物高度数据的来源。另外还可以通过三角测量、GPS测量等外业测量方法获取高程信息,对于大面积的区域则可以通过对建模片区的遥感卫星影像进行光照阴影分析来获取高程数据。影像数据可以通过在遥感卫星影像、航空影像中采集获得,对地物的纹理影像则可以通过数码相机拍摄获得。数字高程模型数据目前的获取方法有两种:通过航天、航空遥感影像立体像对提取DEM;利用现有地形图扫描数字化等高线,获取高程数据生成DEM。前者数据更新快、获取快速但费用较高,后者费用低,仅对高程变化不大的区域适用,可以根据不同的使用背景选取不同的获取方法。
2.2 建模数据的处理
由于系统接收到的GIS数据是地物的世界坐标,因此,在生成模型前我们先将二维GIS数据转换到物体坐标系。这个转换过程属于二维空间的转换,流程是先将物体平移到物体坐标系的原点,然后做必要的旋转。计算模型的重心坐标公式如式(1):
n为多边形顶点的个数。计算出重心后,对每个顶点坐标进行校正,即将每个顶点的x,y坐标减去重心的x,y坐标,完成将模型移到模型坐标原点处。在规范化后我们仍然保留了物体的世界坐标,以便在建模完成后可以直接将模型文件加载到场景的世界坐标中,这个是上述坐标系转换的逆过程,将物体从物体坐标系转换到世界坐标系。
2.3 三维模型的构建
SketchUp提供的SketchUpESRI插件可以实现ArcGIS与SketchUp 交互的功能,通过设置基高可以在SketchUp里快速建立三维模型。SketchUpGIS的工作流程图:
(1) 经过对建模数据的处理之后统一制作成ArcGIS 中的shape或Geodatabase 数据格式便于统一处理如图:
(2)在ArcGIS中加入数据,使用Select Features工具选择需要建模的二维GIS数据,使用sketchUpESRI插件,利用SketchUpGIS Tool 将所选择的二维数据批量的按高程转换为三维SKP数据格式在SketchUp环境中进行精细建模、纹理映射等建模处理;
(3)将处理好的三维模型输出转换为Multipatch数据格式,在ArcGIS提供的场景驱动进行三维显示与分析。
3、基于ArcGIS 的场景驱动的实现
目前可以提供三维场景驱动开发的软件很多如Vega、IMAGIS 等,这些软件的场景显示、视觉仿真功能都很强,但基本都缺少三维空间分析功能,ArcGIS平台能够提供对三维数据进行高效率的可视化和空间分析功能,在实现场景驱动时可以直接利用现有的ArcGIS 三维平台,如:Arc-Scene、ArcGlobe。也可以利ArcEngine提供的SceneControl和GlobeControl控件作为三维显示平台。场景驱动主要包括三维显示浏览、地物属性定位查询、三维交互测量、动画输出和三维空间分析等。
3.1 三维浏览的实现
显示三维空间场景,实现基本空间浏览功能(放大、缩小、漫游、导航),对于三维地图浏览来讲,可视范围的变化实质上是观察者视点位置和视野范围的变化引起的。ArcObjects中提供了Camera对象,通过对Camera 对象的缩放比率、目标点、观察者位置的控制即可达到可视范围的变化。
3.2 属性查询的实现
显示选中地物名称等属性信息,包括显示三维场景中各种地物的名称、信息及三维空间坐标。属性查询功能通过开发属性查询工具来实现。
3.3 三维交互测量功能
三维交互式测量主要用于用户在三维显示窗口内量算平面距离、建筑物高度和对地物面积的量测等。
3.4 飞行动画的实现
即用鼠标控制观察着的飞行方向,并适当调整飞行的速度、角度、俯仰灵敏度和翻滚灵敏度等。飞行完毕之后可将本次飞行的路径予以保存, 然后可按原路重播飞行过程,也可清除飞行路径后重新飞行。它可以给已即定的场景更直观真实的显示。
3.5 三维空间分析功能
三维空间分析包括坡度坡向分析、通视分析和体积计算等[5]。坡度和坡向分析是通过调用ArcObjects组件中CreatDEM方法生成数字高程模型后通过坡度计算模型进行分析;通视分析包括一点对整个区域的通视面积计算,两点之间的通视性判断,多点通视面积的交集计算,由被覆盖的可视面积反求待定位置与高度等;三维体积计算则基于三维量测的计算;其中ArcObjects中的3D Analyst对象提供了所有ArcGIS三维分析的功能类。我们可以充分利用这些类的接口开发不同功能的三维分析应用。
4、三维GIS实验系统
利用SketchUp导入二维GIS数据进行场景建模和基于ArcGIS进行场景驱动的实现,以某实验片区为例制作了三维GIS 的实验系统。该实验片区的二维原始数据为ArcGIS的shape数据格式,按照地物要素的分类分别转为Personal Geodatabase进行统一管理。系统三维GIS的构成包括地形和建筑两大部分。其中地形要素包括:数字高程信息,由该区域的地形图生成DEM,另外还加入了地面纹理影像、道路、树木草坪以及相关的属性信息,为了表现影像的真实性,纹理影像由数码相机采集得到,建筑部分包括建筑物及其纹理和其他的属性信息。这些数据一部分作为三维可视化的内容,一部分作为属性信息。三维建筑和纹理处理完全由SketchUp创建。系统以ArcGIS Engine为开发平台,采用MicrosoftVisual Studio.Net2005为开发环境。该三维实验系统可以方便的提供该区域虚拟环境的动态漫游、二三维联动显示、属性查询、交互测量和空间分析等功能。
5、三维管线GIS 效果图
参考文献
[1]BREUNINGM.Integration of Spatial Information for Geo2 Information Systems[M].Berlin:Springer2verlag Berlin Heidelberg,1996.
[2]CRAWFORD C. Customizing 32D Analyst[M].USA:ESRI(Environmental Systems Research Institute Inc) ,2001.
[3]王磊,周云轩. 三维GIS 面向对象数据模型的研究与应用[J] .测绘学报,2002(3):274-277.
[4]李航,岳丽华. 基于COM 和ArcSDE 的遥感图像数据库开发[J].计算机应用,2005(5).
[5]张正祥,张洪岩.ArcObjects 组件在地理信息系统二次开发中的应用[J].GIS技术,2004(2).
[6]孙怡,杨宜进,周平,等.地理信息系统中的三维可视化方法[J]. 吉林大学学报,2003,21(5). ■
[关键词] 三维, GIS,地下管线
通过本课题软件产品化设计和专业GIS设计的理论、技术研究和软件产品实现,旨在为城市建设、规划部门、专业管线单位提供一个满足如下基本要求的稳定、成熟、高效、可扩展并可持续开发应用的城市地下综合管线三维空间虚拟现实仿真信息管理平台:
●消除城市管线安全隐患、实现城市可持续发展
●实现城市高效率、高质量运转
●实现行业数据共享
●确保管线的专业分析和设计
1、三维GIS 的构建基础
如何精确地表现三维对象几何位置与空间拓扑关系,如何真实地展现三维场景是构建一个三维GIS系统的重要因素。另外,三维GIS需要直接在三维空间中进行空间操作与分析,连同对空间对象进行三维表达与管理,如何流畅地实现场景的交互操作,如何更好地完成对模型的空间分析三维化是构建一个三维GIS系统,而不是一个三维场景显示系统的重要因素。通常构建一个三维GIS系统分为场景建模和场景驱动两个部分。场景建模是将要模拟的场景和对象通过数学方法表达成存储在计算机内的三维图形对象的集合,包括对建模数据的采集、必要的数据处理和具体的模型构建。场景驱动则是对所建立的三维场景进行具体的开发与运用。包括三维可视化和用户在构建的虚拟场景中的显示、漫游、浏览及对三维空间的查询分析等交互的实现。
2、基于SketchUp的场景建模方法
SketchUp可以极其快速和方便地对三维创意进行创建、修改和渲染。在SketchUp中建立三维模型就像使用铅笔在图纸上作图一样方便,SketchUp本身能自动识别构图的线条,加以自动捕捉。它的建模流程简单明了,就是画线成面,而后挤压成型,这是建筑建模最常用的方法。可以利用SketchUp批量导入二维的GIS数据,并利用其方便、快捷的三维建模功能实现三维系统的场景建模。
2.1 建模数据的获取
在三维GIS中,三维模型的构建需要三维的空间数据(包括三维位置数据、高程数据)、影像数据和数字高程模型数据,进行空间查询时还需要地物的属性数据[3]。不同的数据在获取方法也不尽一样,需根据实际情况进行,但都要充分利用目前已有的各种数据。三维空间数据是进行三维建模和可视化的基础,主要包括平面数据、高度数据、数字高程模型数据。三维空间数据的获取中最重要的是二维矢量数据的获取和处理。现有的二维GIS中除了二维空间数据之外,缺少建筑物垂直面的几何信息,并不具有直接完整的第三维信息,一般只有建筑物相对的高度属性,而且不同的数据库往往具有不同的第三维信息,如楼层数信息、相对高度或绝对高度,其中建筑物层数和层高所反映的高度信息与实际差别一般不大,可以作为建筑物高度数据的来源。另外还可以通过三角测量、GPS测量等外业测量方法获取高程信息,对于大面积的区域则可以通过对建模片区的遥感卫星影像进行光照阴影分析来获取高程数据。影像数据可以通过在遥感卫星影像、航空影像中采集获得,对地物的纹理影像则可以通过数码相机拍摄获得。数字高程模型数据目前的获取方法有两种:通过航天、航空遥感影像立体像对提取DEM;利用现有地形图扫描数字化等高线,获取高程数据生成DEM。前者数据更新快、获取快速但费用较高,后者费用低,仅对高程变化不大的区域适用,可以根据不同的使用背景选取不同的获取方法。
2.2 建模数据的处理
由于系统接收到的GIS数据是地物的世界坐标,因此,在生成模型前我们先将二维GIS数据转换到物体坐标系。这个转换过程属于二维空间的转换,流程是先将物体平移到物体坐标系的原点,然后做必要的旋转。计算模型的重心坐标公式如式(1):
n为多边形顶点的个数。计算出重心后,对每个顶点坐标进行校正,即将每个顶点的x,y坐标减去重心的x,y坐标,完成将模型移到模型坐标原点处。在规范化后我们仍然保留了物体的世界坐标,以便在建模完成后可以直接将模型文件加载到场景的世界坐标中,这个是上述坐标系转换的逆过程,将物体从物体坐标系转换到世界坐标系。
2.3 三维模型的构建
SketchUp提供的SketchUpESRI插件可以实现ArcGIS与SketchUp 交互的功能,通过设置基高可以在SketchUp里快速建立三维模型。SketchUpGIS的工作流程图:
(1) 经过对建模数据的处理之后统一制作成ArcGIS 中的shape或Geodatabase 数据格式便于统一处理如图:
(2)在ArcGIS中加入数据,使用Select Features工具选择需要建模的二维GIS数据,使用sketchUpESRI插件,利用SketchUpGIS Tool 将所选择的二维数据批量的按高程转换为三维SKP数据格式在SketchUp环境中进行精细建模、纹理映射等建模处理;
(3)将处理好的三维模型输出转换为Multipatch数据格式,在ArcGIS提供的场景驱动进行三维显示与分析。
3、基于ArcGIS 的场景驱动的实现
目前可以提供三维场景驱动开发的软件很多如Vega、IMAGIS 等,这些软件的场景显示、视觉仿真功能都很强,但基本都缺少三维空间分析功能,ArcGIS平台能够提供对三维数据进行高效率的可视化和空间分析功能,在实现场景驱动时可以直接利用现有的ArcGIS 三维平台,如:Arc-Scene、ArcGlobe。也可以利ArcEngine提供的SceneControl和GlobeControl控件作为三维显示平台。场景驱动主要包括三维显示浏览、地物属性定位查询、三维交互测量、动画输出和三维空间分析等。
3.1 三维浏览的实现
显示三维空间场景,实现基本空间浏览功能(放大、缩小、漫游、导航),对于三维地图浏览来讲,可视范围的变化实质上是观察者视点位置和视野范围的变化引起的。ArcObjects中提供了Camera对象,通过对Camera 对象的缩放比率、目标点、观察者位置的控制即可达到可视范围的变化。
3.2 属性查询的实现
显示选中地物名称等属性信息,包括显示三维场景中各种地物的名称、信息及三维空间坐标。属性查询功能通过开发属性查询工具来实现。
3.3 三维交互测量功能
三维交互式测量主要用于用户在三维显示窗口内量算平面距离、建筑物高度和对地物面积的量测等。
3.4 飞行动画的实现
即用鼠标控制观察着的飞行方向,并适当调整飞行的速度、角度、俯仰灵敏度和翻滚灵敏度等。飞行完毕之后可将本次飞行的路径予以保存, 然后可按原路重播飞行过程,也可清除飞行路径后重新飞行。它可以给已即定的场景更直观真实的显示。
3.5 三维空间分析功能
三维空间分析包括坡度坡向分析、通视分析和体积计算等[5]。坡度和坡向分析是通过调用ArcObjects组件中CreatDEM方法生成数字高程模型后通过坡度计算模型进行分析;通视分析包括一点对整个区域的通视面积计算,两点之间的通视性判断,多点通视面积的交集计算,由被覆盖的可视面积反求待定位置与高度等;三维体积计算则基于三维量测的计算;其中ArcObjects中的3D Analyst对象提供了所有ArcGIS三维分析的功能类。我们可以充分利用这些类的接口开发不同功能的三维分析应用。
4、三维GIS实验系统
利用SketchUp导入二维GIS数据进行场景建模和基于ArcGIS进行场景驱动的实现,以某实验片区为例制作了三维GIS 的实验系统。该实验片区的二维原始数据为ArcGIS的shape数据格式,按照地物要素的分类分别转为Personal Geodatabase进行统一管理。系统三维GIS的构成包括地形和建筑两大部分。其中地形要素包括:数字高程信息,由该区域的地形图生成DEM,另外还加入了地面纹理影像、道路、树木草坪以及相关的属性信息,为了表现影像的真实性,纹理影像由数码相机采集得到,建筑部分包括建筑物及其纹理和其他的属性信息。这些数据一部分作为三维可视化的内容,一部分作为属性信息。三维建筑和纹理处理完全由SketchUp创建。系统以ArcGIS Engine为开发平台,采用MicrosoftVisual Studio.Net2005为开发环境。该三维实验系统可以方便的提供该区域虚拟环境的动态漫游、二三维联动显示、属性查询、交互测量和空间分析等功能。
5、三维管线GIS 效果图
参考文献
[1]BREUNINGM.Integration of Spatial Information for Geo2 Information Systems[M].Berlin:Springer2verlag Berlin Heidelberg,1996.
[2]CRAWFORD C. Customizing 32D Analyst[M].USA:ESRI(Environmental Systems Research Institute Inc) ,2001.
[3]王磊,周云轩. 三维GIS 面向对象数据模型的研究与应用[J] .测绘学报,2002(3):274-277.
[4]李航,岳丽华. 基于COM 和ArcSDE 的遥感图像数据库开发[J].计算机应用,2005(5).
[5]张正祥,张洪岩.ArcObjects 组件在地理信息系统二次开发中的应用[J].GIS技术,2004(2).
[6]孙怡,杨宜进,周平,等.地理信息系统中的三维可视化方法[J]. 吉林大学学报,2003,21(5). ■