欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > DOC文档下载  

    基于ArcGIS的两种三维GIS开发方式的实现和比较

    • 资源ID:6488090       资源大小:3.15MB        全文页数:35页
    • 资源格式: DOC        下载积分:10积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于ArcGIS的两种三维GIS开发方式的实现和比较

    江 西 师 范 大 学本 科 生 毕 业 论 文中文题目 :基于 ArcGIS 的两种三维 GIS 开发方式的 实现和比较English Title: Two three-dimensional GIS-based ArcGIS Implementation and Evaluation of development methods学 号: 0707070023 姓 名: 焦 志 锋 学 院: 地 理 与 环 境 学 院指导老师: 方 朝 阳 (教 授) 专 业: 地 理 信 息 系 统 完成时间: 2011 年 4 月 25 日 声明本人郑重声明:所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作及取得的研究成果。其中除加以标注和致谢的地方,以及法律规定允许的之外,不包含其他人已经发表或撰写完成并以某种方式公开过的研究成果,也不包含为获得其他教育机构的学位或证书而作的材料。其他同志对本研究所做的任何贡献均已在文中作了明确的说明并表示谢意。本毕业设计(论文)成果是本人在江西师范大学读书期间在指导教师指导下取得的,成果归江西师范大学所有。特此声明。声明人(毕业设计(论文)作者)学号:声明人(毕业设计(论文)作者)签名:签名日期:年月日基于 ArcGIS 的两种三维 GIS 开发方式的实现和比较摘 要随着网络和 GIS 技术的发展和行业应用需求的增加,三维 GIS 的开发应用已经深入到各行各业,为了更快速和更有效地在不同的行业中推广和使用三维GIS,实现和比较各种不同的三维 GIS 实现方式是一项既基础又重要的工作。一个通用的基于 ArcGIS 的三维 GIS 开发方法是基于 ArcGIS Engine 的 二 次 开 发模 式 。 以 开 发 语 言 为 C#为 例 , 其 中 可 用 的 控 件 又 有 两 种 , 分 别 是SceneControl 和 GlobeControl。本文基 于 这 两 个 控 件 , 设 计 实 现 两 个 系 统 ,分 别 针 对 系 统 性 能 、 功 能 和 应 用 范 围 等 的 差 异 性 来 分 析 两 者 之 间 的 各 种 区 别 ,并 深 入 探 讨 这 种 区 别 的 原 因 。 分 析 结 果 可 作 为 三 维 GIS 设 计 和 实 现 过 程 中的 参 考 。关键词:三维 GIS ArcGIS Engine SceneControl GlobeControl 对比分析 研究类型:应用研究Two three-dimensional GIS-based ArcGIS Implementation and Evaluation of development methodsAbstractAs networks and GIS technology development and increased demand for industrial applications, development and application of three-dimensional GIS has gone deep into all walks of life, in order to more quickly and more effectively in different industries in the promotion and use of three-dimensional GIS, implementation and compare different three-dimensional GIS is a way to achieve both the basic and important work. A common three-dimensional GIS ArcGIS-based development approach is based on ArcGIS Engine secondary development model. To develop language for the C # example, where there are the two available controls, respectively SceneControl and GlobeControl. Based on these two controls, designed and implemented two systems, respectively, for system performance, function and application scope to analyze the differences in the various differences between the two, and looking into the reasons for this difference. The results can be used as three-dimensional design and implementation of GIS in the process of reference.Key words: Three-dimensional GIS, ArcGIS Engine, SceneControl, GlobeControl, comparative analysisResearch Type: Applied Research 目 录第一章 绪 论 11.1 研究背景 11.2 研究目的和意义 11.3 国内外研究现状 21.4 论文研究的内容和方法 2第二章 三维开发控件简介 32.1 基于 ArcGIS Engine 的三维开发 32.2 三维开发控件的实现 82.3 ArcScene 和 ArcGlobe 应用程序的比较 9第三章 系统的总体设计 103.1 系统的需求分析 103.2 系统研制目标及规定要求 103.3 系统开发设计 113.4 数据要求及预处理 113.5 功能模块划分 12第四章 系统开发设计与技术实现 144.1 系统开发的控件定制 144.2 开发过程及其主要代码实现 14第五章 不同实现方式的对比分析 215.1 性能对比 215.2 功能对比 225.3 所需的要求对比 225.4 其他对比 23第六章 总 结 266.1 论文研究成果 266.2 论文的不足及进一步工作展望 26参 考 文 献 27致 谢 28基于 ArcGIS 的两种三维 GIS 开发方式的实现和比较第一章 绪 论1.1 研究背景随着现代化的技术飞速发展,地理信息系统已经被广泛使用到各个领域中,而当前GIS 的研究成果和应用系统主要集中于描述二维空间信息,各项技术已较为成熟 1。但由于二维地理信息系统将实际的三维实物采用二维的方式表示,具有很大的局限性,比如说它们只是便于做空间查询、分析等,然而有很多东西具有抽象性,不能直观的观察到,所以导致大量的多维空间信息无法得到利用。而与二维地图相比,地形地物的三维显示,给人创造出一种直观、身临其境的感觉,其显示方式也可以满足人们在综合处理、分析、评价、决策以及可视化等方面的需求 2。因此,随着计算机图形学和硬件技术的迅猛推进,和各部门所需要求的提高,特别是对重大事件的决策等,就需要直观的对比分析,达到一种身临其境的效果,于是,从二维的地理信息系统转变到地理信息系统的三维数字表示已成为目前 GIS 科学发展的新趋势之一 3。近年来,越来越多的公司推出了三维图形显示软件,而 ESRI 公司推出的产品 ArcGIS Engine 就是为我们解决这一问题提供了一个有效的途径。通常,我们用 ArcGIS Engine 做的三维开发主 要 用 到 的 控 件 有 两 种 , 分 别 是 SceneControl 和 GlobeControl。对于这两个控件,很多用户对之并不陌生,但在实际应用过程中,则对他们的作用和区别却不是很清楚。为此,基 于 这 两 个 控 件 , 设 计 实 现 两 个 系 统 , 来 体 现 两 者 的 各 种 差 异 ,并 进 行 对 比 分 析 和 探 讨 , 显 得 尤 为 必 要 和 重 要 。 因 此 希 望 在 总 结 前 人 精 髓 的 基 础 上 ,能 够 借 助 本 文 将 这 些 问 题 阐 述 清 楚 。1.2 研究目的和意义论文研究目的主要是 : 研 究 这 两 个 控 件 对 数 据 的 要 求 以 及 相 应 的 数 据 预 处 理 , 基于 两 个 控 件 开 发 后 的 系 统 性 能 、 功 能 和 应 用 范 围 的 差 异 性 , 以 及 对 电 脑 配 置 和 要 求 上区 别 。 并 希 望 本 文 能 够 对以后学习三维开发的同学或研发人员提供一个有效的帮助,同时,也算是对自己本科期间做过的一些工作做简单的一个回顾和总结。本论文研究的意义在于它能够简单明了的阐述基于 ArcGIS Engine 三维二次开发中基于 SceneControl 和 GlobeControl 两控件实现过程中功能和性能的区别,及其适用性差异等,解决了 SceneControl 和 GlobeControl 使用范围差异性不明朗的问题。1.3 国内外研究现状近几年,随着网络技术的飞速发展,GIS 研究和应用也开始转向互联网,称之为WebGIS。WebGIS 利用 Intenet 技术在 Web 上发布空间数据,为用户提供空间数据浏览、查询和分析的功能,具有应用范围广泛、平台无关性、操作简便等特点,同样,三维 GIS 也有转向 Web 的趋势 4。然而,目前,这些三维 WebGIS 实验系统在数据模型、数据的存储、网络传输等方面还存在许多缺陷,因此还没有得到实际应用,但可以肯定的是,他将是未来发展方向的主要趋势。总的来说,目前用的最多的还是用 ArcGis Engine 开发的桌面版软件系统,它的适用性强,可免受病毒侵害,因此不需要安全保护措施,并且开发周期短,界面友好,操作简单,以及各个功能融合性好,并发挥其功效。另外,国内对三维 GIS 系统的开发和研究主要是基于 OpenGL 平台上陆续开发了一些应用系统,研究的主要方向主要有:三维可视化,三维查询漫游,动态显示、空间分析和交互操作,三维动态显示和操作等。比较先进的有:利用己有的立体测图地物数据、数字高程模型数据,结合其它基础地理资料(全野外测量数据、地形图数字化数据以及建筑物外表结构与纹理数据),获取城市区域的三维景观信息并进行一体化建模,制作三维城市景观图并能以图层的形式进行管理,从而对数据集成、多模态可视化、室内外三维一体化显示与漫游和多媒体属性查询有一个更深的研究 5。由此可见,很多国内外的研究更多的偏重于三维的可视化、网络化,三维的功能实现和三维的联动以及一些代码研究等,对于那些能够实现相同功能的控件之间的区别和适用性及其各自优势的研究,则相对较少,而这,正是本文的用意和重点所在。1.4 论文研究的内容和方法研 究 内 容 主 要 是 分 析 和 研 究 ArcGIS Engine 中 两 个 三 维 控 件 在 性 能 、 功 能 和 应 用范 围 以 及 对 电 脑 配 置 和 要 求 上 的 异 同 点 。 具 体 如 下 所 示 :1、 其 中 性 能 的 差 异 表 现 在 : 显 示 效 果 和 相 应 速 度 ;2、 功 能 主 要 研 究 的 是 : 系 统 的 主 体 功 能 , 浏 览 和 操 作 以 及 分 析 等 方 面 , 另 外 , 还涉 及 一 些 编 程 和 控 制 的 方 便 性 ;3、 对 数 据 的 要 求 体 现 在 : 数 据 的 类 型 和 格 式 及 其 预 处 理 方 式 等 ;4、 对 电 脑 的 配 置 的 要 求 体 现 在 : 对 硬 件 如 显 卡 、 内 存 、 CPU 等 的 要 求 ;5、 对 适 用 性 的 研 究 主 要 包 括 : 适 用 范 围 和 适 用 对 象 ;6、 另 外 其 他 的 分 析 还 包 括 : 两 者 之 间 效 果 展 示 的 对 比 。研 究 方 法 主 要 有 :1、 通 过 实 例 开 发 的 实 证 研 究 法 ;2、 总 结 经 验 的 经 验 总 结 法 ;3、 查 阅 文 献 和 网 上 搜 索 的 文 献 研 究 法 ;4、 向 有 关 的 导 师 请 教 和 跟 有 经 验 的 同 学 交 流 的 功 能 分 析 法 和 描 述 性 研 究 法 。 +第二章 三维开发控件简介2.1 基于 ArcGIS Engine 的三维开发2.1.1ArcGIS Engine 简介我们知道,许多用户需要在他们熟悉的软件应用程序里面拥有直接访问专门的行业GIS 的特定接口,他们不需要完全的 GIS 产品,只是需要在他们的应用程序中可以访问复杂的 GIS 逻辑。在用户需要 GIS 的定制接口的情况下,ArcGIS Engine 就可以为普通的软件应用程序提供这样一个解决方案。ArcGIS Engine 是 ESRI 在 ArcGIS 9.0 版本才开始推出的新产品,是一个创建定制的GIS 桌面应用程序的开发产品,它是一套完备的并且打包的嵌入式 GIS 组件库和工具库,开发人员可用来创建新的独立的或扩展已有的桌面地理信息系统(GIS)应用程序 6。ArcGIS Engine 开发包包括 3 个关键部分:控件、工具条和工具、对象库。控件是ArcGIS 用户界面的组成部分, 它可以嵌入并在你的应用程序中使用。工具条是 GIS 工具的集合, 工具在应用界面上用工具条的方式展现。它包括如平移、缩放、点击查询和与地图交互的各种选择工具。对象库是可编程 ArcObjects 组件的集合, 包括几何、显示和三维分析等一系列库, 使得程序可以开发出从低级到高级的各种定制的应用。ArcGIS Engine 支持多种应用程序接口 , 拥有许多高级 GIS 功能,而且构建在工业标准基础之上,具备快速开发和功能扩展能力,可以非常方便地开发出功能强大的 GIS 应用系统。ArcGIS Engine 除了具备所有 GIS 的核心功能外,还提供了大量的扩展功能,如更新和创建多用户地理数据库,3D 分析和空间分析等。 由于 ArcGIS Engine 所具有的上述特征, 因此利用 ArcGIS Engine 进行开发兼具了可移植性好、扩展性强、跨平台以及系统稳定性好的优点。使用 ArcGIS Engine ,开发人员可以将 GIS 功能嵌入到已有的应用软件中,或嵌入到商业生产应用软件中,还可以创建集中式自定义用软件, 并将其发送给机构内的多个用户。另外,它还可以在非 GIS 为核心的应用程序中嵌入 GIS 逻辑,利用 ArcGIS 桌面软件的制图功能,快速的部署包含高质量地图产品的 GIS 应用程序,建立专门的数据编辑应用程序,创建球体可视化应用程序来展现空间和三维分析,创建数据集的地理编码和路径分析应用程序。ArcGIS Engine 面向的用户并不是最终使用者,而是那些技术上复杂的专业 GIS 公司、需要开发企业级 GIS 和地图制图解决方案的大型单位机构、GIS 行业及其垂直产业的第三方解决方案的开发者,以及那些想要向非 GIS 核心的应用程序中添加 GIS 和地图制图功能的开发者,也就是 GIS 项目程序开发员。2.1.2 ArcGIS Engine 中的三维开发控件ArcGIS Engine 为三维的二次开发提供的一个可选扩展的模块是 3D 模块,通过这个模块可以实现地形表面建模、海量数据的交互 3D 浏览、三维分析等功能,而控件之间的互相联系则是实现整个系统功能的关键所在 7。ArcGIS Engine 开发控件有很多,但有关于三维开发的控件并不多,主要包括: GlobeControl、SceneControl、TOCControl 和 LicenseControl。另外还有一些控件如:ToolbarControl、SymbologyControl、ReaderControl、MapControl、PageLayoutControl等,但它们一般用在工具条的定制,符号样式的选择,二维地图的分析以及制图分析等,在三维的二次开发中并不常用,即便用也主要是用在与三维的联动方面,因此这里就不做细论,简而概之。GlobeControl 是“三维地球显示”控件,封装了 GlobeViewer 对象,可以加载ArcGlobe 制作的 Globe 文档,内置了导航功能,部署是需要 ArcGIS Engine 的 3D 运行是选项。它也是专门用于显示三维数据的地图控件,同时也具有对专题地图的三维浏览、漫游以及控制显示,具备大范围海量三维数据的显示漫游功能。SceneControl 是“三维场景显示”控件,封装了 SceneView 对象,可以加载 ArcScene制作的 Scene 文档,内置了导航功能,部署是需要 ArcGIS Engine 的 3D 运行是选项。它实现对专题地图的三维浏览、漫游以及控制显示,该控件是专门用于显示三维数据的地图控件,它使得 AE 在三维开发方面得到了极大的扩展,但该控件只适合于小量数据在小范围内的投影。LicenseControl 是许可证控件,提供 ArcGIS Engine 的功能许可,可通过属性扩展和定制许可证保证程序的正常运行,在其他控件前先加载。TOCControl 是内容表控件,主要实现对专题地图的分层显示与管理,并提供图例,支持对图例的修改。需要“伙伴控件”协同工作,提供一个交互树视图保持与“伙伴控件”同步, “伙伴控件”可以是一个 MapControl,PageLayoutControl,ReaderControl,SceneControl 或者 GlobeControl。另外,MapControl 控件是“地图”视图显示控件,封装了 Map 对象。 MapControl 控件主要用于地图的加载和管理以及显示和分析等,可与三维控件联动使用,例如鹰眼。PageLayoutControl 控件是“布局”显示控件,封装了 PageLayout 对象,主要用于地图的修饰和整理,可以用于生成一幅成品地图,可与三维控件联动使用,用于二维出图。SymbologyControl 是样式控件,主要用于地图文档的符号化,可加载和显示*.ServerStle 文件,在三维控件中,主要用于 3D 符号化。ToolbarControl 是工具条控件,主要提供功能按钮来实现对专题地图的打开、浏览等操作,并可以驻留操作其“伙伴控件”的命令、工具和菜单,需要“伙伴控件”协同工作。该控件一般用的较少,因为工具条一般都是自己做,而这样保证用户界面的美观,个性化。2.1.3 ArcGIS Engine 中的三维开发类库 8本文在开篇在介绍过,基于 ArcGIS Engine 实现三维的二次开发并进行一个效果的展示,主要用到两个大控件,SceneContol 和 GlobeControl,而在这两个控件中在使用中自然而然的会用到很多类库,且两者之间大多共用。随后,本文将简单的介绍一下在三维开发中主要用到的几个类库,来说明这些类库在三维开发中的重要作用,以及不同类库在不同控件的表现形式和区别。图 2.1 各类库结构图在 ArcGIS Engine 中,有关于三维开发的类库有很多,但主要的几个有:System 类库,SystemUI 类库,Geometry 类库,Display 类库,Output 类库,GeoDatabase 类库, DataSourcesFile 类库,DataSourcesRaster 类库,Carto 类库,Controls 类库,GeoAnalyst 类库,3DAnalyst 类库,GlobeCore 类库,SpatialAnalyst 类库。System 类库System 类库是 ArcGIS 体系结构中最底层的类库,它提供了一些可以被其他组件库使用的组件,而这些组件都是非常基本的。System 类库定义了大量开发者可以实现的接口,开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展 ArcGIS 系统。因此,在三维开发中,这是必不可少的类库,SceneContol 和 GlobeControl 都必须用到。SystemUI 类库SystemUI 类库包含用户界面组件接口定义,这些用户界面组件可以在 ArcGIS Engine中进行扩展。包含 ICommand、ITool 和 IToolControl 接口。这个类库中包含的对象是一些实用工具对象,开发人员可以通过使用这些对象简化用户界面的开发,开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展 ArcGIS 系统。因此,在三维开发中,这一类库主要用于用户界面的开发,SceneContol 和 GlobeControl 都必须用到。Geometry 类库Geometry 类库处理存储在要素类中的要素几何图形或形状或其他图形元素,在三维开发中,这一类库主要用于进行要素的表达,SceneContol 和 GlobeControl 都必须用到。Display 类库Display 类库包含用于显示 GIS 数据的对象。除了负责实际输出图像的主要显示对象外,这个类库还包含表示符号和颜色的对象,它们用来控制在显示上绘制时实体的属性。Display 类库的所有部分都能进行扩展;通常扩展的对象包括符号、颜色和显示反馈。这一类库在三维的开发中,主要用于数据的显示和图层的渲染以及图像的输出等,只有用时才被需要。Output 类库Output 类库用于创建图形输出到诸如打印机和绘图仪等设备及诸如增强型元文件和栅格图像格式(JPG、BMP 等)等硬拷贝格式,开发人员用这个类库中的对象及 ArcGIS 系统的其他部分创建图形输出。这一类库在三维的开发中,主要用于场景出图,只有用时才被需要。GeoDatabase 类库Geodatabase 类库中的对象为 ArcGIS 支持的所有数据源提供了一个统一编程模型,GeoDatabase 类库定义了许多由 ArcObjects 架构中更高级的数据源提供者实现的接口,开发者可以扩展地理数据库,以支持特定类型的数据对象(要素、类等) ,地理数据库支持的本地数据类型不能扩展。这一类库在三维的开发中,主要用于数据的加载。DataSourcesFile 类库 DataSourcesFile 类库包含用于基于文件数据源的 GeoDatabaseAPI 实现,开发者不能扩展 DtaSourcesFile 类库。这一类库在三维的开发中,主要用于文档的加载。 DataSourcesRaster 类库DataSourcesRaste 类库包含用于栅格数据源的 GeoDatabaseAPI 实现,开发者不能扩展 DataSourcesRaster 类库。这一类库在三维的开发中,主要用于栅格数据的使用和处理。Carto 类库Carto 类库支持地图的创建和显示,这些地图可以在一幅地图或由许多地图及其地图元素组成的页面中包含数据。这一类库在三维的开发中,主要用于二维制图方面,与三维联动。Controls 类库开发者用 Controls 类库来构建或扩展具有 ArcGIS 功能的应用程序,开发者通过创建自己的用于操作控件的命令和工具来扩展 Controls 类库。这一类库在三维的开发中,主要用于工具条的定制。GeoAnalyst 类库GeoAnalyst 类库包含支持核心空间分析功能的对象,开发者可以通过创建新类型的栅格操作来扩展 GeoAnalyst 类库。这一类库在三维的开发中,主要用于栅格数据的空间分析。3DAnalyst 类库3Danalyst 类库包含操作 3D 场景的对象,而 Scene 对象是 3Danalyst 类库中主要对象之一,与 Map 对象一样,是数据的容器。一个场景由一个和多个图层组成,这些图层规定了场景中包含的数据及这些数据如何显示,开发者很少扩展 3Danalyst 类库。这一类库在三维的开发中,主要用于 SceneControl 控件。GlobeCore 类库GlobeCore 类库包含操作 globe 数据的对象, Globe 对象是 GlobeCore 类库中主要对象之一,与 Map 对象一样,是数据的容器。一个 golbe 有一个和多个图层,这些图层规定了 golbe 中包含的数据及这些数据如何显示。这一类库在三维的开发中,主要用于GlobeControl 控件。SpatialAnalyst 类库SpatialAnalyst 类库包含在栅格数据和矢量数据上执行空间分析的对象,开发者通常使用这个类库中的对象,而不扩展这个类库。这一类库在三维的开发中,主要用于空间分析。最后,在使用ArcEngine提供的类库时,我们一般要在工程 -“引用”中添加对该库的引用,另外,我们在工程中最好还要对所使用的命名空间作一下引用,这主要是为了方便我们以后代码的输入,例如,using ESRI.ArcGIS.Analyst3D;using ESRI.ArcGIS.Controlsusing ESRI.ArcGIS.Display;其中,using 使用的是命名空间,而在工程-“引用”中添加的是程序集,这两者并不是一一对应的关系,一个程序集的库可以分布在多个命名空间中,反之亦然。2.2 三维开发控件的实现一个控件能够实现那些功能主要看这个控件封装和引用了哪些类,定义了哪些方法和属性,且必须知道这些类能够做什么,这些方法和属性又有什么用。但由于方法和属性太多,本文就不在这里赘述,仅从另一个角度来说明这个问题。2.2.1 SceneControl 控件实现从控件的功能实现角度来讲,Scenecontrol 控件封装了 SceneViewer 类,且引用了上述的大部分类库。在前面我们已经知道各个类库的主要作用,而对于 SceneViewer 类,它其实是 SceneControl 控件所特有的,主要用于定义 3D 浏览器。另外,Scenecontrol 在管理方面:包含 Scene appearance、Scene、Scene graph、Camera properties 四个对象,而这些对象实现了我们所需要的大部分基础功能,比如数据的可视化、表面生成和分析等等。在命令和工具方面:定义了漫游,缩放,飞行,选择,观察等在加载文档方面:可加载 Scene 文档在工具条方面:可实现 ControlSceneSceneToolbar在类库方面:esriSceneControl.ocx 和 esri3Danalyst.olb相对于本文的系统,由于时间的限制,则显得较为简单,主要包括:菜单栏中文档的加载、保存场景图片等;图层的基本操作,如图层的删除,缩放到图层等;场景浏览操作,如漫游、缩放、旋转、飞行、放大、缩小、显示全图、前视、后视等;除了这些基本功能之外,还包括一些应用操作和分析如: 属性查询、空间查询、测量、栅格数据的拉伸和渲染、淹没的演示、视频的录制等,2.2.2 GlobeControl 控件实现从控件的功能实现角度来讲, GlobeControl 封装了 GlobeViewer 类,且引用了上述的大部分类库。而 GlobeViewer 对象和 SceneViewer 一样,用于定义 3D 浏览器。另外,GlobeControl 在管理方面又包含 Globe appearance、 Globe、GlobeDisplay、GlobeCamera properties 四个对象,同样,这些类库也实现了大部分基础功能,比如图层的操作、访问、渲染,纹理贴图、数据的输入、输出、缓存等等在命令和工具方面,定义了漫游,缩放,飞行,选择,目标等。在加载文档方面:加载 Globe 文档在工具条方面:可实现 ControlGlobeGlobeToolbar 和 ControlGlobeRotateToolbar在类库方面:esriGlobeControl.ocx 和 esriGlobeCore.olb总的来说,该控件所实现的功能与 SceneControl 控件所实现的功能基本相似,这样做主要是为了更好的对比和分析,并且,两者实现的功能还是能够满足本文分析的需要。2.3 ArcScene 和 ArcGlobe 应用程序的比较 我们知道,可以通过 GlobeControl 和 SceneControl 这两控件分别开发出 ArcGlobe和 ArcScene 两个应用程序,而在 ArcGIS Desktop 中,可用于三维场景展示的程序为ArcGlobe 和 ArcScene,又由于 Engine 与 Desktop 底层技术都是基于 AO 的,因此ArcGlobe 和 ArcScene 在功能和性能的比较结果同样适用与 GlobeControl 和SceneControl。ArcGlobe 与 ArcScene 功能差别 9: 表 2.1描述 ArcGlobe ArcScene3D Analyst 工具条 No Yes缓存机制展示大量数据 Yes NoTerrain 数据 Yes NoTin 作为高程数据 Yes Yes显示 Tin No Yes动态山影效果 No Yes注记的显示(Annotation) Yes No立体视觉 No Yes复杂三维符号(如 3D Simple Line Symbol) No Yes三维模型数据 Yes Yes动画效果中的沿路径移动图层 No Yes无空间参考的数据 No YesVRML 支持 可导入 可导入/导出Representation symbology 图层栅格化后可支持 不支持ArcScene 和 ArcGlobe 其他异同点的比较在相同方面:都可以做 3D 飞行的动画,两者支持的符号是类似的,都能使用 ArcToolbox里的工具来做一些分析功能。在三维显示方面,两者的地形都需要拉伸设置。在不同方面:两者的旋转不同,后者是围着数据的中心点旋转,而后者是围绕地球的中心轴旋转。只有 ArcGlobe 有 Publisher extension 可以用来创建能在 ArcReader 里浏览的3D 场景,浏览时,ArcGlobe 则需要二三维的切换。另外,ArcGlobe 可以进行纹理贴图,使画面更接近于真实,而 ArcScene 则不能,不过,ArcScene 有一些额外的动画功能,比如移动图层的动画,另外,在数据应用操作过程中,都可以加载文档,但文档不同,ArcScene 加载的是*.3ds, ArcGlobe 加载的是*.3dd。在数据的要求上,ArcGlobe 将所有数据投影到球体表面上,使场景显示更接近现实世界,适合于全市,全省,全国甚至全球大范围内的数据展示,其统一的投影系统是WGS84。ArcScene 在显示场景时,会将所有数据加载到场景中,矢量数据以矢量形式显示,栅格数据会自动降低分辨率来显示,以提高效率,并将所有数据投影到当前场景所定义的空间参考中。默认情况下,场景的空间参考由所加入的第一个图层空间参考决定,总的来说,ArcScene 更适合于小范围内精细场景刻画。第三章 系统的总体设计3.1 系统的需求分析功能需求分析功能只要满足基本的浏览功能以及相应的分析功能,主要是方便对比分析,并不做任何商业活动和任何个人目的行为。其基本功能以及相应分析几经在上面说的很清楚,这里就不在赘述,一致性需求在空间查询和属性查询中,相关的表之间,有较强的关联性,并建立起了一致性约束完整性需求根据线路查询系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障。可行性分析1. 技术可行性:熟练操作 ArcScene 和 ArcGlobe 应用程序,并具有一定的 C# 编程能力。2. 操作可行性:采用第三方插件如 Dotnetbar,使系统界面美观明了,提供的信息语言通 俗易懂,而且操作容易,用户只要懂得初步的计算机操作即可。3. 经济可行性:本系统瓶颈在于时间,基本不需要什么资金,可以保证本系统的顺利开发。4. 法律可行性:经研究,本系统的开发符合相关法律条令,不含有任何形式木马和病毒。3.2 系统研制目标及规定要求研制目的本系统的研制目的是为本论文的研究目的所服务的,即研 究 GlobeControl 和SceneControl 这 两 个 控 件 在 数 据 的 的 要 求 和 预 处 理 , 以 及 基 于 两 个 控 件 开 发 后 的 系 统 性能 、 功 能 和 应 用 范 围 的 差 异 性 , 以 及 对 电 脑 配 置 和 要 求 上 区 别 。 并 希 望 本 文 能 够 对以后学习三维开发的同学或研发人员提供一个有效的帮助,同时,也算是对自己本科期间做过的一些工作做简单的一个回顾和总结。规定需求满足基本的功能和相应的分析应用,并能实现性能的优化。功能规定1. 系统的信息输入部分2. 系统的信息处理部分3. 系统的输出4. 系统的维护部分性能规定1、在精度方面:需求上较高,根据使用需要,在各项数据的输入,输出及传输过程中,尽量满足各种精度的需求。输入的信息要求保证实时性、正确性和全面性,输出的信息要保证正确无误。2、时间特性要求a) 响应时间:在正常情况下,不超过 2 秒b) 更新处理时间:不超过 3 秒c) 数据的转换和传送时间:不超过 2 秒d) 解题时间:迅速3、灵活性a) 操作方式上:对用户采用友好的界面,信息查询采用模糊检索;b) 运行环境:可以在 Windows98、2000、XP 、2003 上进行查询。c) 同其他软件的接口的变化:对系统施加不同的外界运行控制时所引起的各种不同的需求,本系统可以做出相应的调整。d) 精度和有效时限的变化:本系统确保所提供信息的正确性和完备性,有效时间由于受到政策和需求的影响应根据各方面的具体情况而定。e) 计划的变化或改进:如果时间充裕,可以增添更丰富的功能。3.3 系统开发设计系统开发平台1、 硬件环境:CPU:P4 2.0GHz;内存:2GB 以上;硬盘: 250GB 以上设备;独立显卡:1G;2、 软件环境:操作系统:Microsoft Windows 2003 Advanced Server;数 据 库:Microsoft SQL Server 2005;开发工具:ArcGIS Engine 开发包;3、 系统运行环境:VS2008;系统开发语言ArcGIS Engine 支持多种开发语言,但本文中所设计的系统用到的语言全是 C#。3.4 数据要求及预处理3.4.1 数据来源及其要求数据的来源是我的导师给我的江西省的 DEM 数据;纹理数据的来源和处理:我们纹理数据的来源是从 GISOnline 中的 ArcGlobe 在线分块截屏,最后通过相应的软件,如 Photoshop 和 ArcGIS 拼合而成。高程数据的处理:主要由我们的专业人员对数据的投影进行校正,并使用本系统的相关软件对兴趣区域进行裁剪,最终得到可以为两个控件所共同加载的数据。3.4.2 数据预处理方法因为我们所用到的数据均为栅格数据,因此数据的处理方法主要有:投影转换,栅格裁剪。3.4.3 数据质量控制数据质量控制是个复杂的过程,要控制数据质量应从数据质量产生和扩散的所有过程和环节入手,分别用一定的方法减少误差。空间数据质量控制常见的方法有:1、传统的手工方法质量控制的人工方法主要是将数字化数据与数据源进行比较,图形部分的检查包括目视方法、绘制到透明图上与原图叠加比较,属性部分的检查采用与原属性逐个对比或其他比较方法。2、元数据方法数据集的元数据中包含了大量有关数据质量的信息,通过它可以检查数据质量,同时元数据也记录了数据处理过程中质量的变化,通过跟踪元数据可以了解数据质量状况和变化。3、地理相关法用空间数据的地理特征要素自身的相关性来分析数据的质量。如从地表自然特征的空间分布着手分析,山区河流应位于微地形的最低点,因此,叠加河流和等高线两层数据时,如河流的位置不在等高线的外凸连线上,则说明两层数据中必有一层数据有质量问题,如不能确定哪层数据有问题时,可以通过将它们分别与其它质量可靠的数据层叠加来进一步分析。因此,可以建立一个有关地理特征要素相关关系的知识库,以备各空间数据层之间地理特征要素的相关分析之用。3.5 功能模块划分3.5.1 场景浏览的基本功能在 ArcScene 程序的窗体中,对于场景的浏览,初步实现了:漫游、飞行、集中到靶心、放大、缩小、移动、选择、前进、后退、全屏、全局放大、全局缩小、刷新等功能。此外还有图层右键功能和场景右键功能,其中图层右键功能包括:图层的删除、缩放到图层、属性表、获取空间参考以及渲染等。而场景右键的功能主要包括:全图、漫游、前进、后退、局部放大、局部缩小、属性、设置地图底色等。图 3.1 工具栏示意图在 ArcGlobe 程序的窗体中,对于地球的浏览,初步实现了:漫游、飞行、集中到靶心、放大、缩小、移动、选择、前进、步行、后退、全屏、刷新以及而三维的切换等功能。此外还有图层右键功能和场景右键功能,其中图层右键功能包括:图层的删除、缩放到图层、属性表、获取空间参考以及渲染等。而球体右键的功能主要包括:全图、漫游、前进、后退、局部放大、局部缩小等。总之,两者之间的功能大同小异。3.5.2 系统应用操作功能在 ArcScene 程序的菜单栏中:有新建文档、场景文档的加载、保存场景图片、添加数据、保存数据、另存数据等;另外有二维鹰眼的展示、属性查询、空间查询、点击查询,三维测量等。而在 ArcGlobe 程序的菜单栏中与在 ArcScene 的菜单栏中的应用操作功能相似,但区别在于场景数据的格式不同。3.5.3 系统分析功能在 ArcScene 中实现的分析功能,主要包括场景的旋转,它有速率参数控制,可通过选择按钮来控制其是否旋转;栅格数据的拉伸,需要输入的参数有“要选择拉伸的图层”和“基准高程的设置” ,其中基准高程有一个默认的值,这是经过我们很多次的测试之后,认为是配合我们的数据所表现最好的一个值。另外还有水库淹没演示。在这个窗体中一共有三个参数需要设置,第一个是“大坝的高程的设定”我们一般将其默认为 150,也是经过多次测试之后,得出的最佳值。第二个参数是“地形图层选择” ,我们选择经过地形拉伸并渲染之后的图层;第三个参数是“水面图层选择” ,选择经过水面拉伸并渲染之后的图层。如下图所示: 图 3.2 淹没演示参数设置在 ArcGlobe 中实现的分析功能,与在 ArcScene 中实现的分析功能相似,区别在与图层的拉伸过程中,后者只需选择相应的图层即可,而前者必须选择高程图层,因为后者一共有三个图层。3.5.4 系统其他功能在这里,两控件都实现了一个视频的录制和输出的功能;主要输入的参数包括视频质量,视频帧率,以及视频长度。此外还有帮助文档,主窗体的风格样式和肤色的变换。第四章 系统开发设计与技术实现4.1 系统开发的控件定制由于本文重在对两个控件的对比分析和研究,因此在控件定制方面,我们主要实现两个系统,这两个系统的控件基本相同,唯一的区别就在于三维操作方面,一个用的是SceneControl 控件,另一个用的是 GlobeControl 控件。其基本控件主要包括:LicenseControl 控件和 TOCControl,我们在控件的简介中介绍过,所以这里就不再赘述。除此之外,我们还用到了一个第三方插件 DotNetBar。DotNetBar 是一组用于.NET Framewo

    注意事项

    本文(基于ArcGIS的两种三维GIS开发方式的实现和比较)为本站会员(机****料)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!