logo资料库

c#+Arcgis_Engine二三维联动_可以实现.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
基于 SKYLINE 的二三维 GIS 互动* 系统设计与实现 江昕,秦奋 (河南大学 环境与规划学院,河南,开封 475004) 摘 要:本文以校园为例,设计了一个基于 ArcEngine 和 Skyline 的二三维 GIS 联动的系统,经过运行和实践证明,此 系统具有实用性和可行性,它既能够实现二维 GIS 的分析查询功能,又能实现三维 GIS 的逼真的可视化功能,并且还有 相互联动操作,弥补了二维 GIS 和三维 GIS 各自的不足,这为 GIS 的设计开发以及充分发挥 GIS 功能做出了一种新的、 有益的探索,并且本系统利用三维激光扫描办法对古建筑物进行建模,这对于文物的数字化保护具有十分重要的意义。 关键词:二三维联动;arcEngine;skyline;三维激光扫描;文物数字化保护 中图分类号:TP311.52 文献标识码:A Design and Implementation of Interactive 2D&3D GIS Architecture based on the skyline JIANG Xin,QIN Fen (College of Environment and Planning, Henan University, Kaifeng 475004, China) Abstract:This paper,taking the campus for example, designed a ArcEngine and Skyline based on two-dimensional GIS and three-dimensional GIS linkage system, after operation, the system has proved the feasibility and practicality, and it can realize the function of two-dimensional GIS analysis, and can realize query lifelike 3d GIS of visual function, and mutual interaction for 2D GIS and 3D GIS,It can make up for the two-dimensional GIS and 3D GIS deficiencies in their respective ,for the design and development of GIS and its full function, this paper made a new and beneficial exploration. And this system uses three-dimensional laser scanning approach for modeling ancient buildings, which is of great significance for theDigital protection of cultural relics. Key words: mutual interaction for 2D GIS and 3D GIS;arcEngine;skyline;three-dimensional laser scanning;digital protection of cultural relics GIS 技术在我国经过近 30 多年的发展,在测绘、土 地、环境、电力、交通等诸多领域已得到了广泛应用。随 着二维 GIS 理论和计算机等相关技术的不断发展,三维 GIS 的深入研究和加速发展现已成为可能。目前三维 GIS 的研究主要集中在三维可视化[1]等方面。国内外的大学、 公司、研究所也陆续开发了一些三维的造型软件(如 Multigen Creator,Cyber- CityGIS 等);或在原来的二维 GIS 中增加了三维功能,使其能够表达现实世界中的三维 对象(如 IMAGIS,VRMAP,CCGIS 等三维 GIS 软件); 还有一些三维可视化系统用于虚拟漫游等场合(如谷歌的 Google Earth,微软的 Virtual Earth 等)。这些系统和软件 都具有对三维模型进行创建、管理的能力,但这些软件的 分析功能还局限于二维分析方面,三维分析功能的开发和 交互操作还有待于进一步研究。 很多学者[1-7]进行了相关的研究,本系统是基于.net2.0 框 架下利用 ArcEngine 的二维功能和 Skyline 三维 GIS 功能, 将二维 GIS 与三维 GIS 进行集成并实现联动,从而实现在 同一框架体系下使两者优势互补,最大程度地发挥系统功 能。 校园 GIS 系统最基本的职能是校园基础信息管理, 包括对管辖范围内校园的植被、地下管线、灯光照明、 消防设施、垃圾桶、指示牌等资源进行清查和空间定位, 以及对所查资源附近的环境进行评估,还有对所承接的工 程项目进行空间定位和监测。我们可以将所掌握的校园测 绘地图、工程数据、师生情况、招生就业资料等输入,通 过系统的不断更新,可以方便、及时地找到所需资料, GIS 系统可以建立地下管线网络等计算机模型,可以帮助处理 地下管线突发事件(爆管、断路)等应急处理;以数字地形 模型为基础,还可以建立校园三维可视化模型,实现多角 度浏览,可广泛应用于宣传、旅游等领域。校园基础资料 的完善是校园管理的基础,有了准确完善的不断更新的基 础资料信息系统,校园管理才会事半功倍,校园管理效率 才会提高。 二维 GIS 具有很强的分析能力,例如缓冲分析、路径 分析、平面测量、空间索查询、渲染分析等,但是它缺乏 有效的三维空间表达能力。三维 GIS 提供了二维 GIS 所不 具有的功能,例如体积测量、三维建模、纹理贴图、模拟 飞行、视角判断等。三维 GIS 在给用户带来可视化功能的 同时,却失去了二维 GIS 分析特色。如何实现两者的互动, _________________________________________________ *收稿日期:2009-8-28 作者简介:江昕(1978-),男,河南新野人,汉族,硕士研究生。主要研究方向为地图学与地理信息系统,Email: dajiang66@163.com Tel:15837836069 1
1 开发设计思路 系统设计采用“一主两翼”的方法进行,其中“一主” 即一个主要关联,通过地理坐标的关联作用来实现二三维 GIS 的互动,从而实现两者的优势互补,发挥 GIS 的最大 功能。“两翼”即两条(二维 GIS、三维 GIS)独立的技术 开发路线。 二维空间数据主要用 ArcMap 的中 shp 文件来组织, 每个图层包括特定的数据集,如道路、河流、广场等。而 shp 文件主要是由 arcCatalog 工具中的 Geodatabase 数 据库来管理数据。本系统二维数据主要是通过关系数据库 access 进行编辑、修改、更新二维数据库的。在二维 GIS 开发过程中,利用 ArcEngine 插件中 Mapcontrol[2, 8] 控件调用 shp 文件来实现二维 GIS 功能,ArcEngine(以 下简称 AE)在逻辑上分为 5 个组成部分如图 1,其中 Base Services 包含了 AE 中最核心的 ArcObjects 组件,几乎所 有的 GIS 组件都需要调用它们,如 Geometry 和 Display 等 。 Data Access 包 含 了 访 问 矢 量 或 栅 格 数 据 的 GeoDatabase 所 有 的 接 口 和 类 组 件 。 Developer Components 包含了进行快速开发所需的全部可视化控件, 如 MapControl、PageLayoutControl、ToolbarControl 等 控件,从而提高开发效率。 三维空间数据用 Creator 的 OpenFlight 结构来组织, 利用其层次结构,根据路、河流、广场等分类来组织数据, 二维地图与三维场景的相互响应主要通过坐标转来实现, 都转化为 WGS 84 地理坐标系,并且三维场景中的地物都 对应于二维图层中的某一矢量图或模型点,三维地物到二 维地物之间的响应主要通过其编号和对应图层号的联系 实现的响应的,当鼠标点击三维场景中的某一点,在二维 地图上实时显示这个点的变化;当点击地二维地图上某一 个点时,三维模型立即显示出来。 图1 系统设计的技术路 Fig.1 system design technology 2 数据准备 2.1 数据获取及处理 2.1.1 二维地图数据获取及处理 本系统主要利用 Google Earth[9-14]提供的免费的 卫 星 影 像 图 , 利 用 截 图 软 件 Snagit 截 图 ,, 然 后 用 CorelDraw 拼 图 处 理 , 结 合 GPS 实 测 坐 标 , 最 后 用 arcgis9.2 进行几何校正、配准,最终形成了准确的校园 平面图。针对本校园地形的起伏小且建筑物较多的特点, 在 实 际 操 作 中 , 主 要 以 Creator 手 动 建 模 为 主 , 以 3dMAX9.0 和三维激光扫描仪为辅助工具对重要建筑物进 行了局部精细建模。 2.1.2 纹理数据获取与处理 主要是通过尼康 S700 1210 万像素的高清晰数据数码 相机获取。最具真实感的纹理才能最好地反映现实世界, 在三维模型中纹理的好坏直接影响场景的效果。建筑物的 纹理加工包括立面纹理和顶部纹理加工。立面纹理可以通 过实地拍摄的数码照片获取;建筑物顶部纹理需要通过高 分辨率影像、航片等,从上面选取对应区域的图像代替, 对于非重点区域的建筑物纹理从纹理库中直接获取。 2.2 虚拟场景的构建 场景建模型主要以 Multigen Creator 工具为主,并辅 助 3DsMax 进行一些精细建模,如交通工具中的公交车、 汽车等,以及重要文物如学校大礼堂等采用三维激光扫描 的 办 法 进 行 , 最 终 都 转 换 成 flt 格 式 , 并 且 以 PhotoShop8.0 为主要图像处理工具,对纹理图像进行光 泽、大小等处理。 2.2.1 Creator 建模原则 (1)采用统一的单位和比例尺,在从其他软件导入模型时 尤其要注意;还要注意设备底面与网格线关系,如动态交 通工具模的车辆类底面要与网格重合; (2)应尽量减少面数,能用贴图就不要建面;贴图宜小不 宜大,边长要为 2 的幂单位像素[15]。 (3)设置合适的 LOD 和 DOF,模型数据库中节点名称注意不 能为默认值,避免产生过多的 Default 节点;放在某一个 自由度下的节点不能移动到其它的父节点。 (4)自然及人文景观建模,它主要包括植树、交通标志、 道路桥梁、建筑物等类型的实体。对树木等植物实体的建 模,在精确度要求不高的情况,可以采用 Billboard 或交 叉面的方法,赋予用带有 α 通道的植物贴图;如果观察 距离较近或要求较高,也可采用其它建模软件生成的植物 树干导入,然后加上树冠的多个角度贴图,一般来说,第 一种方法就可以达到要求。树木较多时,在合成最终文件 时可采用引入外部模型的方法,以提高运行速度桥梁建筑 物等由于需要从不同视角观察,因此要建立三维模型。建 模时画出截面图后,采用 Wall 或 loft 方法,生成三维实 体;如果形状不规则,对其主框架建模后,细节部分用贴 图来实现。对道路的建模,可以采用 road 工具或直接采 用 Strip Face 实现,或者用添加子面的方法。 2.2.2 Creator 建模关键技术 (1)节点开关工具。它可以控制模型的显示与隐藏,特别 是对于距离近的、密集型、复杂建模区这个工具特别有用, 可以选用此开关,保留当前模型,隐藏周围的模型,如物 理学院圆锥楼在多个院系包围中,可以把其周围的建筑物 暂时隐藏,待建完模型后,再显示出来。 (2)移动工具如图 2,作者称为万能变形工具,因为它具有 多种功能。它可以实现模型的上、下、左、右平移,也能 放大缩小。以河南大学新区正校门为例,当鼠标放在箭头 上,变蓝时可以平移,进行上下或左右移动,对于模型的 2 遥感影像Creator3.2建模集成 三维场景统一坐标配准纠正后形成shp格二维图像ArcEngine的Toobarcontrol、Mapcontrol和Toccontrol 控件 Geodatabase数据库距离量算路线查询二三维联动ExtensionsMap presenttationData AccessBase ServicesArcEngine 组成Devekioer Components
精确定位,非常有用。当鼠标放在箭头上,变黄时,可以 放大缩小,以满足实际大小的需要。 3.1 集成互动功能 (a) (b) 图 2 移动工具及应用实例 Fig.2 moving tool and its application (3)纹理映射。就是将一幅二维图像文件映射到一个几何 体的表面上,从而提高三维几何物体表面的真实感效果, 应用纹理是 Creator 一大优势,在大面积虚拟地形时,它 可以代替详细建模,可以大大减少模型数据库的占用内 存,提高实时运行速度。 (4)External Refrence 技术。它是指在一个模型中可以设 置外部引用节点,在节点下能调用另一模型的部分或者全 部,并可以重新定义被调用模型的位置方向。 (5)LOD(level of details)技术。它的基本思想[16]是: 同一个物体与眼睛距离不同,所看到的该物体的详细程度 也 不 同 。 它 可 以 通 过 设 置 每 个 LODs 节 点 的 转 入 (Switch-in)和转出(Switch-out)参数可以方便地控 制 LODs 节点显示的时机。 2.2.3 三维激光扫描进行精细建模 河南大学近代建筑群[17]是近代中国公共建筑中最 具组群特色的建筑类型。该建筑群见证了河南乃至我国近 代高等教育事业的历史进程,有重要的历史价值、艺术价 值和科学价值,对其科学管理与保护意义重大[18],为此 运用三维激光扫描系统对校园近代文物建筑进行精细建 模十分必要。地面三维激光扫描系统选择的是加拿大 Optech 公司生产的 ILRIS-3D 便携式三维扫描系统。 首先要确定三维激光扫描仪布站位置,一般选择在大 礼堂周围选择透光性好、扫描视距不超过 100 米的位置进 行布站,如图 3(a)所示。通过选择其周边的制高点对房顶 的扫描,然后俯视扫描,室内扫描则与外部扫描操作一样。 接下来进行分站扫描,获得点云数据以及纹理数据,然后 将各分站扫描的数据进行归一化处理,统一转换为一个坐 标系,再结合点云处理软件 Polywork9.0 将点云数据去噪、 拼接,最终形成的大礼堂点云模型如图 3(b)所示。 本系统二维部分在 Visual Studio2005.net 环境下, 用 C#与 ArcGIS Engine 组件实现。三维部分是采用的 SkyLine 的 TerraExplorer Pro[19-23]提供的部分二次开 发接口,定义三维界面,并实现部分功能。它们都提供 com 组件,添加到工具箱直接加载即可;并且 C#均采用智能指 针来声明 ArcGIS Engine 接口和 TerraExplorer Pro 提供 的部分二次开发接口,可以被实例化的类在 C#中具有两种 实例化方式:第一种作者称之为类标识方式。在类对象声 明 时 , 直 接 使 用 类 唯 一 标 识 ( CLSID ) 进 行 构 造 , 如 ESRI.ArcGIS.Geometry.IPoint pt ;第二种作者称之为 NEW 方式。在类对象声明时,使用 new 方法进行构造,如 TerraExplorerX.TerraExplorer new TerraExplorerX.TerraExplorer();然后可以应用各自的 接口,二维部分的功能主要体现在能进行一些地图的基本 操作和属性查询以及各种格式图片的输出方面,三维部分 实现的功能,不仅包含了一些三维地图的基本操作,还有 三维地图上的测量分析功能。 TE = ArcGIS Engine 提供了 ToMapPoint 方法可以获得当 前鼠标所在位置的地理坐标,通过 TerraExplorer Pro 的 TerraExplorerX.IPlane5 接口的 MovePosition 方法可以 将三维窗口的中心点移到该地理坐标,即可实现二维控制 三 维 。 同 样 TerraExplorer Pro 同 样 提 供 了 TerraExplorerX.IPlane5 接口的 ScreenToWorld 方法获 得当前鼠标所在位置的地理坐标,而 ArcGIS Engine 提供 的 CenterAt 的方法,不能对二维窗口比例尺缩放,必须 重绘二维窗口的 Extent,三维控制二维也完成了,整个系 统的核心部分也就实现了。程序运行的主主界面如图 4 所 示,互动关键代码如下: private void MoveMapTo(double X, double Y) { ESRI.ArcGIS.Geometry.IPoint pPointt = new ESRI.ArcGIS.Geometry.PointClass(); pPointt.X = X; pPointt.Y = Y; double dblWidth = this.axMapControl1.Extent.Width; double dblHeight = this.axMapControl1.Extent.Height; //画一个矩形 ESRI.ArcGIS.Geometry.IEnvelope IIEnvelope = new ESRI.ArcGIS.Geometry.EnvelopeClass(); IIEnvelope.UpperLeft.X = pPointt.X - dblWidth / 2; IIEnvelope.UpperLeft.Y = pPointt.Y - dblHeight / 2; IIEnvelope.LowerRight.X = pPointt.X + dblWidth / 2; IIEnvelope.LowerRight.Y = pPointt.Y + dblHeight / 2; (a) (b) 图 3 激光扫描示意图 Fig.3 3D laser scanning schemes 3 系统功能实现 } //中心点移到矩形中心 axMapControl1.CenterAt(pCenterpoint); //将矩形作为二维窗口的窗口 axMapControl1.Extent = IIEnvelope; //从屏幕坐标获得地理坐标 pt = axMapControl1.ToMapPoint(e.x, e.y); TerraExplorerX.TerraExplorer TE; TE = new TerraExplorerX.TerraExplorer(); 3
TerraExplorerX.IPlane5 pIPlane; pIPlane = TE as TerraExplorerX.IPlane5; //定义各个参数的变量 double dobjH = 20; double dYaw = 30; double dPitch = 320; double dRoll = 0; double dCameraDeltaYaw = 0; double dCameraDeltaPitch = 0; int Flags = 0; double pX = Convert.ToDouble(pt.X); double pY = Convert.ToDouble(pt.Y); //将三维窗口中心点坐标移到二维窗口中心点坐标 转换到的地理坐标上 pIPlane.MovePosition(pX, pY, dobjH, dYaw, dPitch, dRoll, dCameraDeltaYaw, dCameraDeltaPitch, Flags); TerraExplorerX.IRender5 pIRender; pIRender = TE as TerraExplorerX.IRender5; TerraExplorerX.IObjectManager51 pIObjectManager; pIObjectManager = TE as TerraExplorerX.IObjectManager51; TerraExplorerX.ITENavigationMap5 pITENavigationMap; pITENavigationMap = TE as TerraExplorerX.ITENavigationMap5; TerraExplorerX.IInformationTree5 pIInformationTree; pIInformationTree = TE as TerraExplorerX.IInformationTree5; object objType = 63; object objX = 0; object objY = 0; object objH = 0; object objID = ""; //将地理坐标转换为屏幕坐标 pIRender.ScreenToWorld(X, Y, ref objType, out objX, out objH, out objY, out objID); string strobjx = Convert.ToString(objX); string strobjy = Convert.ToString(objY); double dobjx = Convert.ToDouble(objX); double dobjy = Convert.ToDouble(objY); pCenterpoint.X = dobjx; pCenterpoint.Y = dobjy; //三维和二维移动 MoveMapTo(dobjx, dobjy); //地图刷新 this.axMapControl1.Refresh(); 图 4 主界面 Fig.4 main interface 3.2 基本的量测分析功能 校园管理过程中有时候要知道一些具体数据,如果去 实地测量,不仅费时费力,而且数据精度和存储也是个问 题,而在本系统中这个只需要几秒钟就好,可以进行直线 测量,可以获取亮点之间的水平距离,高度,坡度等,还 可以空间距离测量(如图 5),测量的是空间两点之间的位 置,可以获取空间距离,高差,坡度等数值,以及高度测 量,还可以测量垂直距离,测的是两点之间的垂直坐标, 可以得到第一点的海拔,第二点的海拔,以及这两点之间 的高差以及面积量测等。 如图 5 空间距离量测 Fig.5 space distance measurement 3.3 双向查询功能[24] 它包括属性查图(如图 6(a))与图查属性如图 6(b))。 (a) (b) 4
图 6 双向查询 Fig.6 bidirectional inquiring 此外,本系统还可以将二维地图输出JPEG,BMP, PDF等格式,便于管理者更加仔细的观察和分析。 结 论 通过运行河大校园信息管理系统,作者验证了此方案 的可行性和实用性。本系统利用三维激光扫描办法对古建 筑物进行建模,这对于文物的数字化保护具有十分重要的 意义,并实现了二三维互动功能,这仅仅是二三维联动理 论的一个具体实践途径,更多的二三维联动理论和应用还 需要进一步的研究和探索,如何随时间的变化,使校园监 控设备与地面动态物体同步显示,如何具体表现出专题地 图形式,这些都是下一步需要深入思考的地方。 参考文献 [1] 肖乐斌, 钟耳顺, 刘纪远, 等. 三维 GIS 的基本 问题探讨[J]. 中国图象图形学报 A 辑, 2001, 6(9): 842-847. [15] 孟晓梅, 刘文庆. Multigen Creator 教程[M]. 北京: 国防工业出版社, 2005. [16] 王英杰, 袁勘省, 余卓渊. 多维动态地学信息 可视化[M]. 北京: 科学家出版社, 2003. [17] 国家文物局经费阳光工程网. [河南]河南大学近 [EB/OL]. 代 http://www.wenwu.net.cn/infoview.asp?info id=3751. 2007-2012 建 筑 群 [18] 阚瑷珂, 朱利东, 罗丽萍等. 考古地层的三维 重建方法[J]. 计算机应用研究, 2007, 24(3): 302-305. [19] 李佼. 基于 TerraExplorer Pro 的三维城市浏览 系统开发[J]. 计算机技术与发展, 2009, 19(6): 240-242. [20] 侯妙乐. 基于 Skyline 的三维数字校园[J]. 北 京建筑工程学院学报, 2008, 24(4). [21] 洪安龙. 基于 Skyline 的三维地理信息系统应用 的实践[J]. 浙江国土资源, 2009(3): 49-50. [22] 邓洁. 基于 Skyline Terrasuite 的城市三维景 观的建立[J]. 遥感技术与应用, 2008, 23(5): 529-532. [23] 梁吉欣. Skyline 在 Web 三维 GIS 中的应用研究 [J]. 昆 明 理 工 大 学 学 报 ( 理 工 版 ) , 2009, 34(2). [24] 王磊, 周云轩. GIS 二维、三维空间信息查询功 能的实现与应用[J]. 计算机应用研究, 2001, 18(12): 145-148. [2] 李建成. 基于 ArcEngine 的三维 GIS 的设计与实 现 [J]. 遥 感 技 术 与 应 用 , 2009, 24(3): 395-398. [3] 刘东琴. 城市空间二维信息系统与三维虚拟场 景一体化研究与应用——BDA 城市三维信息系统 的 设 计与 实 现[J]. 测绘 科学, 2007, 32(1): 53-54. [4] 钱韬. 基于 Vega 的虚拟城市仿真系统设计研究 [J]. 电脑知识与技术, 2009, 5(1): 175-176. [5] 邵明旭. 二三维联动的虚拟校园设计与实现[J]. 地理信息世界, 2008, 6(2): 73-76. [6] 万幼, B. Fu-ling. 二三维联动的 GIS 系统体系 结构构建技术[J]. 地理信息世界, 2008, 6(2): 48-52. [7] 谢绍锋. 森林资源信息三维虚拟仿真系统研究 [J]. 福建林业科技, 2009, 36(1): 146-150. [8] 蒋波涛. 插件式 GIS 应用框架的设计与实现── 基于 C#和 ArcGIS Engine 9.2[M]. 北京: 电子 工业出版社, 2008.10. [9] 李 黎 . Google Earth 面面 观[J]. 中国 测绘, 2006(1): 64-67. [10] 何君毅. Google-Earth 在油田边探井管理中的 应 用 [J]. 油 气 田 地 面 工 程 , 2009, 28(4): 63-64. [11] 刘祥磊. 基于 Google Earth 管线巡检系统地图 数 据 的 制 作 方 法 研 究 [J]. 测 绘 科 学 , 2008, 33(2): 141-142. [12] 薛亚婷. 基于 Google Earth 及 KML 的数字校园 设计与实现方法研究[D]. 2007. [13] 莫平浩. 利用 Google Earth 制作卫星影像图[J]. 电力勘测设计, 2008(2): 30-31. [14] 朱超平. 如何利用 Google Earth 绘制校园平面 图――以湖北大学为例[J]. 湖北大学学报(自 然科学版), 2008, 30(1): 93-96. 5
分享到:
收藏