基于ArcGIS的两种三维GIS开发方式的实现和比较 - 图文(3)

2019-09-01 16:54

江 西 师 范 大 学 本科生毕业论文 在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类库。这一类库在三维的开发中,主要用于文档的加载。

6 地理与环境学院

江 西 师 范 大 学 本科生毕业论文 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.Controls using ESRI.ArcGIS.Display;

其中,using使用的是命名空间,而在工程--“引用”中添加的是程序集,这两者并不是一一对应的关系,一个程序集的库可以分布在多个命名空间中,反之亦然。

7 地理与环境学院

江 西 师 范 大 学 本科生毕业论文

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控件所实现的功能基本相似,这样做主要是为了更好的对比和分析,并且,两者实现的功能还是能够满足本文分析的需要。

8 地理与环境学院

江 西 师 范 大 学 本科生毕业论文

2.3 ArcScene和ArcGlobe应用程序的比较

我们知道,可以通过GlobeControl和SceneControl这两控件分别开发出ArcGlobe和ArcScene两个应用程序,而在ArcGIS Desktop中,可用于三维场景展示的程序为ArcGlobe和ArcScene,又由于Engine与Desktop底层技术都是基于AO的,因此ArcGlobe和ArcScene在功能和性能的比较结果同样适用与GlobeControl和SceneControl。 ArcGlobe与ArcScene功能差别: 表 2.1

描述

3D Analyst工具条 缓存机制展示大量数据

Terrain数据 Tin作为高程数据

显示Tin 动态山影效果

注记的显示(Annotation)

立体视觉

复杂三维符号(如3D Simple Line Symbol)

三维模型数据

动画效果中的沿路径移动图层

无空间参考的数据

VRML支持

Representation symbology

ArcScene和ArcGlobe其他异同点的比较

在相同方面:都可以做3D飞行的动画,两者支持的符号是类似的,都能使用ArcToolbox里的工具来做一些分析功能。在三维显示方面,两者的地形都需要拉伸设置。

在不同方面:两者的旋转不同,后者是围着数据的中心点旋转,而后者是围绕地球的中心轴旋转。只有ArcGlobe有Publisher extension可以用来创建能在ArcReader里浏览的3D场景,浏览时,ArcGlobe则需要二三维的切换。另外,ArcGlobe可以进行纹理贴图,使画面更接近于真实,而ArcScene则不能,不过,ArcScene有一些额外的动画功能,比如移动图层的动画,

另外,在数据应用操作过程中,都可以加载文档,但文档不同,ArcScene加载的是*.3ds, ArcGlobe加载的是*.3dd。

在数据的要求上,ArcGlobe将所有数据投影到球体表面上,使场景显示更接近现实世界,适合于全市,全省,全国甚至全球大范围内的数据展示,其统一的投影系统是WGS84。 ArcScene在显示场景时,会将所有数据加载到场景中,矢量数据以矢量形式显示,栅格数据会自动降低分辨率来显示,以提高效率,并将所有数据投影到当前场景所定义的空间参考中。默认情况下,场景的空间参考由所加入的第一个图层空间参考决定,总的来说,ArcScene更适合于小范围内精细场景刻画。

9 地理与环境学院

[9]

ArcGlobe

No Yes Yes Yes No No Yes No No Yes No No 可导入

图层栅格化后可支持

ArcScene

Yes No No Yes Yes Yes No Yes Yes Yes Yes Yes 可导入/导出 不支持

江 西 师 范 大 学 本科生毕业论文

第三章 系统的总体设计

3.1 系统的需求分析

功能需求分析

功能只要满足基本的浏览功能以及相应的分析功能,主要是方便对比分析,并不做任何商业活动和任何个人目的行为。其基本功能以及相应分析几经在上面说的很清楚,这里就不在赘述,

一致性需求

在空间查询和属性查询中,相关的表之间,有较强的关联性,并建立起了一致性约束

完整性需求

根据线路查询系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障。

可行性分析

1. 技术可行性:熟练操作ArcScene和ArcGlobe应用程序,并具有一定的C# 编程能力。

2. 操作可行性:采用第三方插件如Dotnetbar,使系统界面美观明了,提供的信息语言通

俗易懂,而且操作容易,用户只要懂得初步的计算机操作即可。 3. 经济可行性:本系统瓶颈在于时间,基本不需要什么资金,可以保证本系统的顺利开发。 4. 法律可行性:经研究,本系统的开发符合相关法律条令,不含有任何形式木马和病毒。

3.2 系统研制目标及规定要求

研制目的

本系统的研制目的是为本论文的研究目的所服务的,即研究GlobeControl和SceneControl这两个控件在数据的的要求和预处理,以及基于两个控件开发后的系统性能、功能和应用范围的差异性,以及对电脑配置和要求上区别。并希望本文能够对以后学习三维开发的同学或研发人员提供一个有效的帮助,同时,也算是对自己本科期间做过的一些工作做简单的一个回顾和总结。

规定需求

满足基本的功能和相应的分析应用,并能实现性能的优化。

功能规定

1. 系统的信息输入部分 2. 系统的信息处理部分 3. 系统的输出 4. 系统的维护部分

10 地理与环境学院


基于ArcGIS的两种三维GIS开发方式的实现和比较 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于审理农村房屋买卖合同纠纷适用法律的思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: