




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选文档一、填空题范围1.动态加载Shapefile文件时,应先创建工作空间工厂,然后再打开Shapefile 工作空间,如何创建工作空间工厂,如何打开Shapefile工作空间。同时,Shapefile作为一种应用非常广泛的地理数据格式,MapControl控件提供了更方便的加载方法,省去了建工作区、找数据集等步骤。可以用什么函数直接加载shapefile文件使用程序动态地添加图层:图层的常规加载方法首先向工程里添加如下引用:ESRI.ArcGIS.DataSourcesFile;ESRI.ArcGIS.GeoDataBase;ESRI.ArcGIS.Carto;创建工作空间工厂: IWor
2、kspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();打开shapefile工作空间:IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0);直接加载shapefile文件:object.AddShapeFile (Path, fileName ) MapControl1.AddShapeFile (F:Shapefile,县界.shp);Shapefile数据是一种比较常用的,而且是容易获得(从其他格式的数据转换而来)的文件数据格式。Sh
3、apefile采用早期的dBase数据的管理模式,即以文件夹作为数据库,文件夹下的文件组成了数据库中的表,对于Shapefile文件来说就是图层。 一个Shapefile图层至少需要三个文件:*.SHP,*.SHX,*.DBF,它们分别用于存储空间数据、空间索引信息和属性数据。2.AE主要方法,接口。接口属性和方法 接口(棒棒糖图标 )u 对象模型图罗列了每一个类支持的所有接口,并以列表的方式表示接口的属性和方法。u 但OMD中只描述了常用接口的属性和方法,并没有详细给出每一个接口的属性和方法。u 在COM技术中,每一个接口都是从其他接口继承而来的,最底层的接口都会在对象模型图上列出来,在要表
4、示的接口的右边会列出该接口继承的最底层接口。3.打开地图文档中关键步骤:创建map document和打开map document,如何实现。创建一个新的地图文档实例: IMapDocument mapDoc = new MapDocumentClass(); 打开当前地图文档: mapDoc.Open(m_pageLayoutControl.DocumentFilename, string.Empty); 4.AE可对图层进行选择、删除、控制显示范围等操作,需掌握的要点: 如何获取索引为某一index的图层并赋值给lyer;如何删除索引为index的图层;删除所有图层(1) 图层的选择u M
5、apControl通过对图层进行索引来定位图层,如果想得到索引为2的图层(首先保证其存在),方法如下:layer=axMapControl1.get_layer(2) ;u 但在程序开发中,我们不容易知道具体的图层索引号,因此用名称来获取图层比较合适,下面定义的函数可用名称来获得图层,代码如下: private GetLayerByName(AxMapControl mapctrl,string strName) 调用以上函数可以获得相应的图层。Dim lyer As ILayer Set lyer=GetLayerByName(axMapControl1,”分市州”);Lyer.Visibl
6、e=false; /隐藏分市州图层axMapControl1.Refresh();(2) 图层的卸载u 卸载指定图层:axMapControl1.DeleteLayer(3);u 卸载所有图层:axMapControl1.ClearLayers;axMapControl1.Refresh();(3) 控制图层显示的范围当MapControl中加载了很多图层之后,在缩放过程中,用户并不希望所有图层都显示,比如在浏览中国轮廓的时候,县级的行政区划就不必要再显示了,这样可以减小地图负载,使地图更清晰。实现这个功能,具体的做法就是设置图层的可见比例尺范围,代码如下:axMapControl1.get_
7、Layer(3).MaximumScale=500000;axMapControl1.get_Layer(3).MinimumScale=1000000;axMapControl1.Refresh(); axMapControl1.ClearLayers;5.地图的浏览功能包括漫游、放大、缩小和全屏四个操作,这也是GIS最基本的功能。如何实现四个操作。漫游:漫游操作直接使用MapControl的Pan方法。MapControl1.Pan(); Me.MapControl1.Pan放大:(拉框放大)axMapControl1.Extent=axMapControl1.TrackRectangle
8、();Me.MapControl1.Extent Me.MapControl1.TrackRectangle除此之外,还可以利用IEnvelope接口的PutCoords方法缩小:全屏:Me.MapControl1.Extent=Me.MapControl1.FullExtent6.TOCControl是ArcEngine中用来管理MapControl中图层的控件,使用需要把它和对应的MapControl进行绑定。其中动态绑定用什么代码可实现。动态绑定:TOCControl1.SetBuddyControl MapControl17.点状要素的简单符号化主要涉及符号的样式、颜色、大小、角度、边
9、框(颜色、宽带)位置几个属性。需要用到简单标记符号接口和简单渲染接口,如何定义简单标记符号变量和定义简单渲染变量。定义简单标记符号变量:ISimpleMarkerSymbol pSMarkerSymbol = new SimpleMarkerSymbolClass();ISimpleLineSymbol pSLineSymbol = new SimpleLineSymbolClass();ISimpleFillSymbol pSFillSymbol = new SimpleFillSymbolClass();定义简单简单渲染变量:ISimpleRenderer pSimpleRenderer
10、= new SimpleRendererClass();8.在ArcEngine中,所有的专题图对象都必须通过什么接口实现定义专题图渲染所必需的方法和属性。在ArcEngine中,所有的专题图对象都必须实现IFeatureRenderer接口IFeatureRenderer接口定义的全部方法和属性如下: CanRender 标识是否可以被渲染 Draw 使用此函数进行渲染 ExclusionSet 不被渲染的对象的集合 PrepareFilter 渲染过滤器 RenderPhase 绘制选项 SymbolByFeature 获得绘制的ISymbol对象9.在专题图制作中,点密度渲染(DotDe
11、nsityRenderer)需要用到点密度填充符号接口和点密度渲染接口,如何定义点密度填充符号变量和定义点密度渲染变量。定义点密度填充符号变量:IDotDensityFillSymbol dotDensityFillSymbol = new DotDensityFillSymbolClass();定义点密度渲染变量:IDotDensityRenderer dotDensityRenderer = new DotDensityRendererClass();10.地图编辑涉及 IWorkSpaceEdit接口编辑工作一般需用到Workspace、Map、FeatureLayer、Property
12、Set等组件类或者抽象类,以及这些类所实现的IWorkSpaceEdit、IMap、IDataset、IGeoFeatureLayer、IPropertySet等接口。该接口主要控制WorkSpace的编辑流程。该接口一共包括13种方法。其中,如何开始一个WorkSpace的编辑流程,如何结束一个WorkSpace的编辑流程。十种方法:StartEditing方法StopEditing方法EnableUndoRedo方法StartEditOperation方法StopEditOperation方法IsBeingEdited方法AbortEditOperation方法HasEdit方法HasRe
13、dos方法UndoEditOperation方法StartEditing方法开始一个对WorkSpace的编辑流程,其形式为:public void StartEditing ( bool withUndoRedo ); 参数:withUndoRedo用于确定该编辑WorkSpace是否支持“重做/取消重做”的操作。StopEditing方法结束一个对WorkSpace的编辑流程,其形式为:public void StopEditing ( bool saveEdits ); 参数:saveEdits用于确定该编辑流程内的编辑操作是否保存。如果该参数设为false则放弃包含在该编辑流程内的所有
14、编辑操作。 EnableUndoRedo方法开始一个编辑操作,其形式为:public void EnableUndoRedo ( ); StartEditOperation方法开始一个编辑操作,其形式为:public void StartEditOperation ( ); StopEditOperation方法结束一个编辑操作,其形式为:public void StopEditOperation ( ); IsBeingEdited方法public bool IsBeingEdited ( ); Bool类型,当当前WorkSpace已启动编辑流程时返回true,反之返回false。 Abo
15、rtEditOperation方法退出编辑操作,其形式为:public void AbortEditOperation ( ); 当在编辑操作过程中监测到错误时退出当前编辑操作。 HasEdit方法当WorkSpace编辑流程中包含已经完成并需要保存的编辑操作时返回一个真值,其形式为:public void HasEdits ( ref bool pHasEdits ); 参数:pHasEdits当编辑流程中包含已经完成并需要保存的编辑操作时,该参数赋值为true。 HasRedos方法判断当前编辑流程中是否进行过撤销操作,其形式为:public void HasRedos ( ref boo
16、l pHasRedos ); 参数:pHasRedos当当前编辑流程中有已撤销的编辑操作时,给该参数赋值为true,表明可以进行重做操作。 UndoEditOperation方法取消上一步编辑操作,其形式为:public void UndoEditOperation ( ); 11.地图中的要素选择方式:可以是点选、圆选、矩形框选和多边形选择。其中点选方式如何定义点类型变量并示例化,如何选择上面获取的要素ESRI.ArcGIS.Geometry.Point point = new ESRI.ArcGIS.Geometry.PointClass(); point.X = e.mapX; poin
17、t.Y = e.mapY; geometry = point as IGeometry;axMapControl1.Map.SelectByShape(geometry, null, false);12.空间查询&属性查询以及用到的接口:地图中包含了大量的信息,为了快速地了解所需信息,必须借助空间查询功能。其中,基于属性查询是通过对要素的属性信息设定要求来查询定位空间位置。如何实现属性查询。a) 得到所选要素所在要素图层b) 通过鼠标操作得到空间查询过滤器c) 使用IFeatureSelection接口中的SelectFeatures方法选择要素基于属性查询是通过对要素的属性信息设定要求来查询
18、定位空间位置。查询需要对要素名称设置限制条件,查询到结果后再利用图形和要素的对应关系,在地图上对符合条件的要素进行定位并渲染。QueryFilter组件类指定了一个属性查询过滤器,利用该过滤器可从要素集中筛选出满足条件的行集。该组件类实现了IQuerFilter接口,提供了1个方法和3基于空间位置查询,是根据要素与要素之间的空间关系进行查询,主要有以下几种:相交(Intersect)、相接(Touch)、叠加(Overlap)、穿越(Crosses)、在内部(Within)和包含(Contains)空间几何查询主要用到SpatialFilter组件类,该类是QueryFilter组件类的子类,
19、可以从属性和空间关系两方面查询条件来查询。个属性。13.在向地图图层中添加点状要素:如何定义要素DataSet.Workspace和Feature.Workspace接口跳转;如何实例化点对象,如何将该点对象赋予创建的新要素,如何给索引字段赋值;如何结束编辑操作。定义数据集:IDataset pDataSet = pFeatureClass as IDataset; IWorkspaceEdit pWorkSpaceEdit; 接口跳转:pWorkSpaceEdit = pDataSet.Workspace as IWorkspaceEdit;如何实例化点对象:/定义一个点对象 IPoint
20、pPoint; /实例化该点对象 pPoint = new PointClass();将点对象赋予创建的新要素:Double X1 = 1,Y1 = 1; pPoint.PutCoords(X1, Y1);给索引字段赋值:pFeature.set_Value(idx, null);/结束编辑操作 pWorkSpaceEdit.StopEditing(true);14.AE对象模型图中类有几种类型,每类之间存在的关系。判断题315.拓扑运算(接口) ArcEngine中提供了ITopologicalOperator接口用于拓扑运算,ITopologicalOperator接口用来通过对已存在的几
21、何对象做空间拓扑运算,以产生新的结合对象。 实现ITopologicalOperator接口的类有Point、Multipoint、Polyline、Polygon和MultiPatch等。 ITopologicalOperator接口在GIS开发中的使用非常广泛,通常GIS系统中的缓冲区分析、裁剪几何图形、几何图形差分操作、几何图形合并操作等都需要使用此接口。16.怎样实现地图接口跳转17.实例化点对象(线,面)18.新创的对象赋予新的要素二、判断题判断题共十题1AE的特点(核心技术,语言);功能;主要特点:标准的GIS框架成本适宜的配置开发控制器跨平台功能跨开发语言ArcGIS的扩展功能开
22、发资源实现功能:对所有矢量和栅格数据源的读权限对Shapefile和pGDB的写权限读/写MXD文件数据的显示和地图浏览绘制来自于航空照片或卫星影像的图像跟踪和绘制要素(如点、线、圆及多边形)绘制非GIS要素,如描述性文本、图形元素地图数据的坐标转换搜索地图上的要素或通过单击来识别地图上的要素多种要素选择方式,如点选、框选、SQL属性选择显示要素属性字段的文本标注TOC图层管理,如显示具有多个地图图层的地图要素符号化,使用主题方法为要素着色(如值映射图、分类图和点密度图)制定工具和命令地图布局和打印要素数据库的管理和更新专题图制作(如值映射图、分类图、点密度图)跟踪动态GPS要素地理编码功能3
23、D显示及其应用数据管理和分析(创建缓冲区;计算差值;查找形状的交集、联合或反转交集)交互操作个人地理数据库与主地理数据库其他拓展技术应用总之,ArcEngine非常适合于构建高级GIS应用软件的基础制图。如实现部分ArcGIS Desktop中ArcMap的GIS制图功能。2.AE与MO、AO的区别与联系。ArcEngine和MapObjects的区别与联系MapObjects是ESRI公司早期推出的一套构建定制的封装控件,和ArcEngine一样,它并不是一个终端产品,而且功能没有ArcEngine强大。ArcEngine是小颗粒的封装,而MO是大颗粒的封装,而且MO并不支持空间数据库连接M
24、O主要是开发一些轻量级的应用,ArcEngine则能实现更为强大、更为复杂的GIS功能。 ArcEngine和ArcObjects的区别与联系 ArcObjects是ESRI公司用c+和基于微软公司COM技术编写的独立于平台的一套软件组件库 AO是ArcGIS体系的基础。ArcGIS Desktop,ArcEngine,ArcGIS Server的底层组件都是AO AO不是为终端用户而是专门为开发人员提供的二次开发软件,通过AO用户主要是方便地拓展GIS应用系统。 AO开发出来的系统不是独立的产品,它必须以ArcGIS Desktop为后台基础。这是AO和ArcEngine最主要的区别 Arc
25、Engine是基于AO组件库的,即AO构建了ArcEngine,但ArcEngine是独立于应用程序的AO编程环境,应用与ArcGIS Desktop应用程序框架之外的ArcGIS组件3.对象模型图有哪些类,不同类特点对象模型图将ArcEngine组件库整合在一起,用图表的形式表示出来。它不仅可以系统地表示类库、接口及其参数,还可以表示类与类之间的关系。类间关系 ArcEngine中类与类之间存在几种不同的关系,主要有: 依赖关系(Instantiation) 继承关系(Inheritance) 组合关系(Composition) 关联关系(Association)类与对象 对象模型图中的类分
26、为三种:u 抽象类(Abstract Class)u 实例化类(Class)u 可创建类(CoClass)抽象类(Abstract Class)u 从名字上就可以看出,一个抽象类是不能直接创建新对象的。它是用来对子类的一种规定。不能从其他对象中获取实例对象u 在对象模型图上每一个抽象类至少有一个子类。例如,Layer就是一个抽象类,它包括了RasterLayer,TinLayer,CadLayer,FeatrureLayer等子类。u 只能定义接口,被子类继承u OMD中:2D的灰色矩形表示抽象类实例化类(Class)(普通类)u 实例化类不能直接创建新对象,但是这种类的对象能够作为其他对象的
27、属性被创建,或是通过其他类的方法来创建。例如一个Row(表格的行)不能直接被创建,它必须由Table来创建,并存于Table中。不能使用new关键字来产生对象。u 虽然实例化类是可以被其他的对象创建的,但是在对象模型图上却没有可实例化的箭头。u OMD中:没有阴影的3D矩形。可创建类(CoClass)u 可创建类是唯一可以用New关键字来创建对象的。也就是说,可创建类可以直接被创建或者实例化。例如在ArcMap中,可以创建新的Maps,FeatureLayers,FillSymbols或GraphicElements等。在对象模型图(OMD)中可创建类是用3D有阴影的立方体表示的。4. TOC
28、Control干什么的(图层控制,操作);MapControl干什么的(显示)5.专题图制作(渲染)接口。在ArcEngine中,所有的专题图对象都必须实现IFeatureRenderer接口,这个接口定义了专题图渲染所必需的方法和属性。IFeatureRenderer接口定义的全部方法和属性如下:l CanRender 标识是否可以被渲染l Draw 使用此函数进行渲染l ExclusionSet 不被渲染的对象的集合l PrepareFilter 渲染过滤器l RenderPhase 绘制选项l SymbolByFeature 获得绘制的ISymbol对象实现了IFeatureRender
29、er接口的对象有13个,其中封装在ArcEngine中的渲染对象有:1、SimpleRenderer:SimpleRenderer对象是最简单的渲染对象,它不涉及对要素图层的数据处理,程序中的一般的符号化操作都使用来进行渲染。2、ClassBreaksRenderer :ClassBreaksRenderer(分级渲染),它根据要素类中某个数值字段的值来进行统计分级并显示分级结果。分级的方法、级数和显示都可由编程者规定。3、UniqueValueRenderer :UniqueValueRenderer可以为每一个不同的要素(按某个数值字段的值)赋予不同的符号,这种渲染方法支持的符号最多。使用
30、对象实现的IUniqueValueRenderer的AddValue方法,把值和符号一一对应添加,进行渲染。4、ProportionalSymbol:RendererProportionalSymbolRenderer(梯度渲染)对象依据要素层的某个数值字段生成依该数值变化大小的点符号来实现专题渲染。ProportionalSymbolRenderer实现了IProportionalSymbolRenderer接口,使用该接口来操作梯度渲染。5、ChartRenderer:ChartRenderer(图表渲染)即在对应地物上绘制统计图,包括柱状图和饼图两种。ChartRenderer上绘制的符
31、号是3DchartSymbol,包括三种符号: StackedChart、BarChart、PieChart 6、DotDensityRenderer DotDensityRenderer即点密度渲染,它根据面状要素的某个数值属性在面状要素内绘制与数值相当的点,绘制的点数=值/每个点代表的值。 点的符号样式、大小、代表的数值和填充背景由编程人员定义。7、ScaleDependentRenderer: ScaleDependentRenderer允许按比例尺渲染专题图,其意图很明显,在有些情况下,不同的比例尺适合不同的专题渲染。6.拓扑输入类型,数据格式能否创建拓扑三、简答题(4-5题)1GIS
32、设计方法有哪些,方法特点结构化生命周期法; 定义:要求将信息系统的开发工作,从初始到结束划分为若干个阶段,并预先规定好每个阶段的任务,再按一定原则按部就班地逐一完成。特点:1)预先明确用户要求 2)自顶向下设计 3)严格按阶段进行开发4)工作文档要求标准化和规范化 5)强调阶段成果的评审和检验。 v 主要阶段 1)系统开发准备阶段2)调查研究及可行性研究阶段3)系统分析阶段 4)系统设计阶段5)系统实施阶段6)维护和评价阶段原型法; 产生原因: 1)软件费用再整个信息系统的开发费用忠相对上升 2)市场竞争激烈,要求企业灵活多变 3)开发者为专业用户,不完全了解最终需求基本思想: 1)并非所有的
33、需求都能预先定义2)有快速的建造工具 3)需要系统模型4)反复修改,逐步完善。 v 阶段 1)确定用户需求2)开发初始原型3)利用原型来提炼用户需求 4)修正和改进原型5)反复指导用户满意v 优点1)开发周期短、费用少2)用户参与更多3)减少了对用户的培训费用缺点 1)对大和复杂系统,难以直接使用2)反复修改始开发过程管理困难适用对象用户需求不清楚、管理及业务处理不稳定、需求经常发生变化、系统规模小、不太复杂的情况面向对象设计方法;v 概念和术语 1)对象:可以是真实的,也可以是抽象的 2)类:具有一致属性表达和行为特征的对象抽象为类 3)继承:类具有层次,每一个子类均具有其父类的的属性表达和
34、行为特征,这种特性称为继承性v 设计方法 1)OMT:对象模型、动态模型、功能模型2)UML GIS设计方法选择;小型GIS软件设计常采用原型法进行开发,大型GIS软件设计多采用结构化生命周期法或面向对象方法进行开发,考虑GIS设计需求不确定性特点,通常在需求分析阶段应用原型法来确认用户需求。结构生命周期法原型法面向对象法开发思想划分6个阶段,并规定它们自上而下,相互衔接的固定次序借助原型(它反映了最终系统的部分重要特性)来辅助软件开发将客观世界看成相互联系的事物(即对象)组成,以对象为单元进行设计开发开发过程线性、固定次序简单到复杂、部分到全面线性、迭代性和无间隙性开发模式整体开发模式。下一阶段前完成上一阶段所有细节非整体开发模式。推迟某些阶段的细节工作,从而较早产生工作软件非整体开发模式分析阶段由底向上提取对象,实现阶段自顶向下建立对象驱动机制文档驱动需要的可变性和模糊性以对象作为驱动可见性开发过程系统不可见通过试用原型进行沟通开发过程系统不可见优点一种较成熟的管理模式,整体性好具有一定灵活性和可修改性;增进了开发人员和用户对系统需求的理解与人类思维方法一直,便于描述可观
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- f房屋维修合同范本
- 饭店多人合同范本
- 2025年金属板网行业深度研究分析报告
- 2021-2026年中国健康补充剂市场供需现状及投资战略研究报告
- 中国会议材料印刷项目投资可行性研究报告
- 中国男衬衫行业市场全景评估及投资战略研究报告
- 2018-2024年中国水电装机未来趋势预测分析及投资规划研究建议报告
- 2025年宠物链条项目可行性研究报告
- 分散大红GR行业市场发展及发展趋势与投资战略研究报告
- 弹射玩具线上线下融合销售考核试卷
- 课件-DeepSeek从入门到精通
- 2025年业务员工作总结及工作计划模版(3篇)
- 2025至2030年中国毛绒卡通玩具数据监测研究报告
- 2024年连云港市赣榆区区属国企对外招聘笔试真题
- 海南省海口市2024-2025学年八年级上学期期末考试数学试题(含答案)
- 2025年度智能充电桩场地租赁合同范本3篇
- 2025年注射用赖氮匹林项目可行性研究报告
- 2025江西吉安市新庐陵投资发展限公司招聘11人高频重点提升(共500题)附带答案详解
- 17J008挡土墙(重力式、衡重式、悬臂式)图示图集
- 2025年山东出版集团招聘笔试参考题库含答案解析
- 水泥基自流平地面技术交底
评论
0/150
提交评论