一、名词解释:事件过程:有一个相关联的对象,当相应的事件发生时运行代码。
子过程:没有相关联的对象,必须被调用才能运行,无返回值函数(FUNCTIONS):没有相关联的对象,必须被调用才能运行,有返回值过程级变量:只在申明变量的过程中可见。
模块级变量:在所申明的模块中有效。
公有级变量:在项目的所有模块中均有效。
类:是一个蓝本或模板,它定义了由其生成的对象所具有的属性和方法。
对象:是由类创建的具体事物。
类库:是包含多和类的单个文件。
COM:组件对象模型,是用来连接软件组件或模块的一个协议,COM类:用接口来组织属性与方法,一个COM类会有很多接口。
接口:接口是定义方法和属性的一个逻辑组查询接口:当对一个类进行实例化时,你只能使用一个接口,但实例化后,你就可查询任何其它的接口。
在同一个对象上使用附加的接口。
多态性:类可以提供具有不同执行的相同接口。
抽象类:是用来组织特定的子类,不可创建和实化成对象,无实际对象。
CoClass :Creatable Class 可创建类,可由NEW关键字实例化的一种类。
枚举:是在一个对象中包含的对象包,有一个简单接口,该接口有2个方法:Next:引用枚举中的下一项;Reset:将指针移回枚举的顶端。
Map:是图层的集合。
要素层:是一种FeatureClass类型的数据集。
FeatureClass:是具有简单要素类型(点、线、多边形)、普通属性集和普通空间参考的数据集。
Workspace:是一个包含数据的文件夹ArcInfo Workspace:一个包含coverage和INFO子目录的目录。
Shapefile Workspace:包含Shapefiles的目录。
Access Workspace:包含表和要素数据集的个人geodatabase.SDE Workspace包含表、要素数据集和层的ArcSDE实例。
Raster Workspace:包含格网和图像。
TIN Workspace:包含TINs要素数据集(FeatureDatasets):是要素类的集合。
要素类(FeatureClasse):是要素的集合,包含了相同的要素类型(所有的点、线或多边形)、相同的属性集合和相同的空间参考。
Fields:是Field的集合,是可创建类,可用New关键字创建。
Field是可创建类,可用New关键字创建。
简单专题图着色器(SimpleRenderer):所有要素都用相同的符号和颜色显示。
单值专题图着色器UniqueValueRenderer:图层的每个不同值的属性用不同的符号显示。
分类专题图着色器ClassBreaksRenderer:根据数字字段的值分组,每一个分组使用一个符号显示点密度图制作器(DotDensityRenderer):在多边形要素层上使用随机打点的方式作图,点的密度代表数值大小。
二、填空要使用ArcInfo coverages,就要用ArcInfo WorkspaceFactory来创建Workspace;要使用Shapefiles,就要用ShapefileWorkspaceFactory来创建Workspace;要使用个人geodatabase,就要用AccessWorkspaceFactory来创建Workspace;要使用ArcSDE实例,就要用SDEWorkspaceFactory来创建Workspace;要使用格网和图像,就要用RasterWorkspaceFactory来创建Workspace;要使用TINs,就要用TINWorkspaceFactory来创建Workspace;打开一个存在的Workspace的方法有:OpenFromFile:打开本地机器上不需要连接的文件夹或个人geodatabase的情况下打开Workspace;Open:在需要连接如ArcSDE数据集的情况下打开Workspace。
使用Workspace类上IFeatureWorkspace接口的OpenFeatureClass方法可以获取直接存储于中的要素类。
使用要素集对象的IFeatureClassContainer接口的ClassByName、ClassByID或Class(index)等属性就可获取要素类。
一旦参考了一个Workspace对象(新的或存在的),就可以其IFeatureWorkspace接口的方法(CreatFeatureClass, CreatFeatureDataset,CreatRelationshipClass,CreatTable)在Workspace中创建新的数据集。
Field是可创建类,可用New关键字创建。
在创建新的FeatureClass或Table前,需要为新的数据集生成字段集合。
FeatureClass或Table都有Fields属性,可用于返回数据集相关的Fields对象,从该对象可根据索引位置获取每个Field对象。
IFieldsEdit的方法有AddField:为字段集加入字段;DeleteAllFields删除字段集中的所有字段; DeleteField(index)通过索引删除指定的字段单个coverage可能包含多种要素类型(如Polygons,Lines,Lable,Points 和Tics),每一种都是要素类。
通过用Table创建Row,就可保证Row生成于Table之内。
Row类的Irow接口下有V alue属性,该属性可读写,要使用Value属性,你得指定所要为其提供值的字段的索引位置。
请在图中标出Project Explorer,Projects,Code Modules和Procedures请说明以上图标的含义三、判断题(10分,每个2分)Shapefile本身就是要素类,不能包含其它的要素类型。
可通过定义在Ifeature接口下的Shape属性直接获取Feature的几何形体。
点是所有几何形体的基础,它可用来建立其它的几何形体如线和多边形,任何几何体都能直接从点集合生成。
每个几何体都有一个封装边界,它是要素的最小包围边界。
ITopologicalOperator接口被point,multipoint, ployline, polygon等类所支持。
IRelationalOperator接口被point,multipoint, ployline, polygon等类所支持外,还被Envelope 类支持。
IProximityOperator接口被point,multipoint, ployline, polygon,Envelope等类所支持外,还被Line类支持。
SelectionSet是不可创建类,只能从其它类中得到。
使用SelectionSet类可以从一个Table或FeatureClass中得到一个当前选择集(selected table rows or features)。
QueryFilter 及其子类SpatialFilter是可创建类,可用New关键字创建。
Cursor类(包括其子类FeatureCursor)便于你在一个对象中可以管理许多记录。
每个要素层都有一个相关的特征着色器对象,用于空件图层的显示,包括分类和每类显示的符号和颜色。
四、简答题1、几何形体空间操作接口有哪些?ITopologicalOperator(空间操作),IProximityOperator(测量),IRelationalOperator(检查)2、几何形体空间操作接口可以做哪些工作?测量要素间的距离,评价空间关系,基于现存要素的空间关系生成新的几何形体,基于空间准则查询要素。
3、要测量两几何体间的距离,请问用何接口何方法?3、要为一个何体间建缓冲区,请问用何接口何方法?4、要判断两个几何体间是否存在包含关系,请问用何接口何方法?5、Cursor 有哪三种类型,分别由哪三种方法所生成?6、举例说明如何访问Cursor中的每一个记录?Dim pFeature As IFeatureSet pFeature = pFCursor.NextFeatureDo Until pFeature Is NothingSet pFeature = pFCursor.NextFeatureLoop7、Set pFCursor = pFClass.Search(Nothing, True)实现了什么?8、下列程序实现了什么?Dim pQFilter As IQueryFilterSet pQFilter = New QueryFilterpQFilter.WhereClause = "LENGTH > 100000"Dim pFCursor As IFeatureCursorSet pFCursor = pFClass.Search(pQFilter, True)10、color有哪5种可创建的子类?RgbColor(红、绿、蓝)CmykColor(青、洋红、黄、黑)HsvColor(色调、饱和度、值)HlsColor(色调、亮度、饱和度)GrayColor(灰度)11、颜色梯度ColorRamp类有哪四种可创建的子类?Algorithmic ColorRamp(算法颜色梯度)Random ColorRamp(随机颜色梯度)Preset ColorRamp(预定义颜色梯度)MultiPart ColorRamp(多部分的颜色梯度12、图形元素(graphic elements)包括哪些?Line, polygon, markerText and pictures13、框架元素(FrameElements )包括哪些?Map framesNorth arrows, legends, scale barsTable frames14、Symbol类有哪几个子类?文本符号markersymbol,线型符号linesymbol和填充符号fillsymbol等。
15、在对象浏览器中下列图标分别表示什么?、、、、分别表示属性、方法、事件、模块和类可读属性、可写属性、可读可写属性、方法。
五、程序设计题1、请指出下图中类的类名和接口名,并设计从ThisDocument获取活动地图、所有地图和选中图层的程序Dim pMxDoc As IMxDocumentSet pMxDoc = ThisDocumentDim pMap As IMapSet pMap = pMxDoc.FocusMapDim pAllMaps As IMapsSet pAllMaps = pMxDoc.MapsDim pLayer As ILayerSet pLayer = pMxDoc.SelectedLayer2、请设计程序,实现遍历pMap中的图层对象,并将其图层名输出。