文档详情

基于ArcEngine 的三维地形可视化系统设计与实现(可编辑).doc

发布:2018-06-25约7.26千字共14页下载文档
文本预览下载声明
基于ArcEngine 的三维地形可视化系统设计与实现 1,2,3 1, 2 王方雄 ,马少君 (1. 辽宁师范大学自然地理与空间信息科学辽宁省重点实验室,辽宁大连 116029; 2. 辽宁师范大学海洋经济与可持续发展研究中心,辽宁大连 116029; 3. 辽宁师范大学城市与环境学院,辽宁大连 116029) 摘 要:以 Visual C#NET为开发平台,以 ArcEngine为开发组件,详述了三维地形可视化功能的实现方法和关键技术, 设计并实现了包括地形表面生成、三维场景显示、地形因子分析及通视分析等功能的基于 ArcEngine的三维地形可视化系统。 关键词:ArcEngine;三维地形可视化;DEM;地形因子 中图分类号:P208 文献标志码: B 文章编号: 1672-4623 2011 03-0038-03 随着可视化技术和虚拟现实技术的发展,建立三 其中 Scene对象是 3D Analyst类库中主要对象之一。数 维实时、交互的仿真地形环境成为可能。目前,实现 字地形分析功能的实现使用的是 GeoAnalyst 类库中 [5] 三维地形环境中的地形分析,更精确、更直观地以可 ISurfaceOp接口 。 视化形式表达真实的地形状况成为了研究热点。三维 2 三维地形可视化功能的实现方法 地形可视化不但能直观地显示实际地形特征,更能将 三维地形可视化功能既包括基本的三维地形显示 地形分析的结果以可视化的形式更精确、更直观地表 功能也包括高级的三维地形分析功能。用户可利用 Ar- 达出来。本文基于 Visual C# .NET开发平台与 ArcEngine cEngine提供的三维分析组件,首先生成三维地表,并 组件技术,详细介绍了三维地形可视化功能的实现方 法,设计并实现了三维地形可视化系统。 在此基础上实现三维地表可视化、地形因子分析及通 视分析等功能。 1 ArcEngine组件技术 2.1 三维地表可视化 美国 ESRI公司的 ArcEngine是一个用于建立自定 2.1.1 三维地表生成 义独立地理信息系统(GIS)应用程序的平台,支持多 地形表面生成的过程实际上就是DEM数据转换的 种应用程序接口(APIs),拥有许多高级 GIS功能,而 过程。ArcEngine中提供了 2种数据来生成地形的三维 且还具有良好的跨平台、跨语言特点,开发者可以快 表面模型。一种是规则格网数据(Raster),它是一个 [1,2] 速方便地定制出满足应用需求的 GIS应用系统 。 格网高程矩阵,是连续地形表面模型的栅格化表示,也 ArcEngine开发包包括 3个关键部分:控件、工具条和 是基于单元的数字地形地面最一般的存放格式;另一 类库。控件是 GIS系统用户界面的组成部分,可以嵌 种是不规则三角网数据(TIN),它是按地形特征采集 入到应用程序中使用,常用的核心控件包括地图控件、 的点按一定规则连接成覆盖整个区域且互不重叠的多 图层管理控件、工具条控件、布局控件、三维显示控 个三角形,是三维空间的分段线性模型。这两种数据 件等;工具条是一些常用 GIS工具集合,包括漫游、缩 各有利弊,Raster 表面的缺点是对地形的表达比较粗 放、查询、视域切换以及各种选择工具等;类库是可 略,并且数据量过大,通常要进行压缩存储;而 TIN 编程 ArcEngine组件的集合,包括显示、几何、地理数 表面能较精确描述复杂地形,但数据存贮方式比 Raster [ ] 6 据库和三维分析等一系列库,据此可开发出从低级到 复杂 。 [ ] 3,4 高级的各种定制的应用 。 ArcEngine中提供了直接由线类型的等高线数据生 [7] ArcEngine数字地形分析组件主要分布在 GeoAna- 成 TIN的接口方法 ,但没有提供直接由等高线数据 lyst类库中。GeoAnalyst类库包含支持核心空间分析功 生成 Raster的方法,所以只有通过数据转换的方法来 能的对象。这些功能用在 SpatialAnalyst和 3D Analyst 2 实现:一种方法是先将等高线数据生成 TIN,再将 TIN 个类库中。 3D Analyst类库包含了操作 3D场景的对象, 转为 Raster;另一种方法是将等高线数据转为点类型数 收稿日期:2010-12-20 项目来源:辽宁省教育厅创新团队资助项目(WT2010031);教育部人文社会科学重点研究基地资助项目(08JJD790142)。 第 卷第 期 39 王方雄等:基于 ArcEngine的三维地形可视化系统设计与实现 据,再利用点内插生成 Raster。本系统采用的是第一种 break; 方法,即先把等高线矢量数据生成 TIN,然后由 TIN case 2: pTinEdit. AddF
显示全部
相似文档