您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页AE练习题

AE练习题

来源:爱go旅游网
《GIS开与应用》练习题

1. GIS开发模式包括: 独立开发模式 、 宿主型开发模式 和 组件式GIS开发模式 。

2. 组件式GIS 开发平台的结构有三种: 基础组件 、 高级通用组件 和 行业性组件 。

3. ArcEngine 从功能层次上分为五部分:基本服务(Base Services)、数据存取(Data Access)、地图表达(Map Presentation)、开发组件(Developer Components)和运行时选项(Runtime Options)。

4. ArcObjects 和ArcEngine中提供了3种类:抽象类、 可创建类或组件类 和 实例化类或普通类 ,这三个类在对象模型图OMD中体现: 抽象类用二维阴影矩形表示; 可创建类用3D有阴影的立方体表示; 实例化类用3D无阴影的立方体表示。

5. AE和AO中的几个类?这些类的特点和用途?

Abstract Class (抽象类): 不能直接创建新对象,只是用来派生ArcObjects其他类。抽象类用于定义子类的公共接口,子类继承其定义的接口。 OMD中每个抽象类至少有一个子类。

Coclass (Component classes)可创建类或组件类: 用New关键字创建对象或者从别的对象获得运行实例。

Class 实例化类或普通类: 不能直接创建新对象,只能从其他类接口的属性函数或其他类的方法创建。

6. PageLayout与Map都是 视图 对象,能够显示地图,都实现了 IActiveView接口;同时它们都是 图形元素 的容器,能存储图形元素(Graphics Element),都实现了 IGraphicsContainer 接口。

7. ArcGIS中可以显示在视图上的图形分为两种,地理数据和元素( Element)数据。元素是一个地图中除去要素数据外的部分,即在一幅地图中,除了保存在数据库中的地理数据外,其余的对象全部是元素。

8. ArcEngine元素要素包括 图形元素 和 框架元素 ,Map只能保存图形元素 数据;PageLayout能保存 图形元素 和 框架元素 。 9. MapControl 控件对应ArcMap中的数据视图(Data View),它封装了 Map 对象,并提供了额外的属性、方法、事件。

10. PageLayoutControl 控件对应ArcMap中的布局视图(Layout View),它封装了 PageLayout 对象,并提供了额外的属性、方法、事件。 11. 在ArcEngine 开发中,右键菜单有两种实现方式: ITOCControl.HitTest方法和IToolbarMenu.AddItem 方法。

12. ArcEngine环境中提供了丰富的符号组件来满足地图设计中的各种需求,这些组件包括 颜色对象 Color, 符号对象Symbol , 专题图制作Renderer 三大系列。

13. 空间分析 是GIS区别于一般信息系统的主要功能特征,空间分析是基于地理对象的位置和形态特征的空间数据分析技术,其目的在于提取和传输空间信息。空间查询是GIS的基本功能之一,主要分为两类:基于属性查询 和基于空间位置查询(空间关系查询)。

14. 在ArcEngine 中不能直接使用SQL语句,但ArcGIS Engine 提供了QueryFilter和SpatialFilter 两个过滤器对象来配合完成查询条件的设置,从而查询到符合条件的数据。

15. COM是Component Object Model的缩写,OMD是Object Model Diagram的缩写。

16. 要素间的空间关系主要包括:相交、相接、叠加、穿越、在内部 和 包含。

17. ArcEngine和ArcObjects的区别与联系?

联系:

1.ArcEngine包括核心ArcObjects的功能,是对AO中的大部分接口、类等进行封装所构成的嵌入式组件。

2.AE中的组件接口、方法、属性与AO相同。 区别:

1.开发环境:ArcObjects必须依赖ArcGISDesktop桌面平台,即购买安装了ArcGISDesktop的同时,安装ArcObjects,才能利用AO进行开发;ArcEngine是独立的嵌入式组件,不依赖ArcGISDesktop桌面平台,直接安装ArcEngineRuntime和DeveloperKit后,即可利用其在不同开发语言环境下开发。

2.功能:AO的功能更强大,AE的功能相对弱些,AE不具备AO的

少部分功能。ArcEngine具有简洁、灵活、易用、可移植性强等的特点。

18. 简单渲染实现的流程?

产生一个SimpleRenderer对象 获取地图中的渲染图层;

设置渲染符号:对于简单渲染设置SimpleRenderer对象的Symbol属性 把SimpleRenderer对象的Symbol赋值给IGeoFeaturelayer::Renderer属性

刷新要素图层;

19. 两个图层Clip运算的流程与代码实现?

ILayer pLayer = axMapControl1.get_Layer(0) as ILayer;

ILayer pLayer_2 = axMapControl1.get_Layer(1) as ILayer; Geoprocessor pGP = new Geoprocessor(); pGP.OverwriteOutput = true;

ESRI.ArcGIS.AnalysisTools.Clip pClip = new ESRI.ArcGIS.AnalysisTools.Clip(); pClip.clip_features = pLayer; pClip.in_features = pLayer_2;

object output = \"C:\\\\OutputServer\\\\Clip\\\\ClipResults.shp\";//此处如果只写成C:\\\\OutputServer\\\\Clip,那么文件不会存进Clip文件夹中

//而是存在OutputServer文件夹中,并且shp文件名为Clip pClip.out_feature_class = output; pGP.Execute(pClip, null);

axMapControl1.ActiveView.Refresh();

20. 对某图层Buffer运算的流程与代码实现?

1) 添加引用;

using ESRI.ArcGIS.AnalysisTools; using ESRI.ArcGIS.Geoprocessor;

2) 设置缓冲区分析的图层;

ILayer pLayer = axMapControl1.Map.get_Layer (0);

3) 初始化Geoprocessor

Geoprocessor pGP = new Geoprocessor(); pGP.OverwriteOutput = true;

4) 定义Buffer工具

ESRI.ArcGIS.AnalysisTools.Buffer pBuffer = new ESRI.ArcGIS.AnalysisTools.Buffer();

5) 设置Buffer工具的属性in_features, out_feature_class,

buffer_distance_or_field, 和dissolve_option pBuffer.in_features = pLayer;

pBuffer.out_feature_class = @\"D:\\BufferResults\"; pBuffer.buffer_distance_or_field = \"1000 METERS\"; pBuffer.dissolve_option = \"ALL\";

6) 执行缓冲区分析

pGP.Execute(pBuffer,null);

7) 刷新图层

axMapControl1.ActiveView.Refresh();

21. ArcEngine地图整饰对象添加的流程? 获取PageLayout对象;

IPageLayout pPageLayout = new axPageLayoutControl1. PageLayout;

获取与PageLayout相关联的活动视图:

IActiveView pActiveView= pPageLayout as IActiveView;

获取与PageLayout相关联的图形容器(GrphicsContainer); IGraphicsContainer pGraphicsContainer=pPageLayout as IGraphicsContainer;

使用IGraphicContainer的FindFrame方法查找与焦点(Focus)地图相关联的

Map Frame对象;

IMapFrame pMapFrame=pGraphicsContainer.FindFrame(pActiveView. FoucsMap) as IMapFrame;

使用MapFrame对象的CreateSurroundFrame(pID, pMapSurround)方法得到MapSurroundFrame对象;

获取Element对象,以便它能设置MapSurroundFame对象的几何体属性(Geometry):

IElement pElement = pMapSurroundFame as IElement ;

为地图整饰对象(如图例)创建一个新的封闭区域几何对象; pEnvelope = new EnvelopeClass(); pEnvelope.PutCoords(0, 0, 5, 5);

获取与Focus地图的MapFrame相关联的几何对象,该几何对象控制地图整饰对象在地图上的位置; pElement.geometry = pEvelope;

采用GraphicContainer对象的AddElement(Element,0)方法,把地图要素添加地图布局( PageLayout的图形容器)中。

刷新屏幕上的MapSurround对象。

pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null, null);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务