ArcGISEngine中的地图组成及图层控制接口函数全解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
IActiveView接口
IActiveView接口是Map对象最主要、最常用 的接口之一,该接口定义了Map对象的数据 显示功能。通过该接口,可以在Map上
绘制图形
改变视图范围
获取ScreenDisplay对象的指针 显示或隐藏标尺和滚动条
的单个要素,返回一个IArray数组对象。
20
图层对象/ CAD文件
Hunnan City University
湖南城市学院
Map对象能够载入多种格式的地理和非地理数据,其中便包括AutoCAD的DWG文件。 DWG文件是两种不同形式的 混合体 :一是要素图层,保存矢量数据,使用FeatureLayer 对象管理;二是栅格图像,使用CadLayer对象管理。 当DWG文件载入Map对象时,ArcEngine将CAD元素分为4种类型:点、线、多边形和标 注,并在要素的属性表中建立标识字段,而不按照DWG文件本身的图层号进行分层。CAD文 件中的文字可以使用CadAnnotationLayer对象来操作。 下面的代码展示了在ArcEngine 9.3中如何加载DWG文件:
选择集。
18
图层对象-要素图层-ILayerFields
ILayerFields接口提供了Field、FieldCount、
FieldInfo和FindField等属性和方法,用于获取要素类 的字段信息。
19
图层对象-要素图层-IIdentify
IIdentify接口定义了一个方法Identify,用于获取图层
如矢量点、线、 面数据,栅格数 据,TIN数据等。
如指北针、 图例等。
4
ห้องสมุดไป่ตู้
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
IMap接口
例:选择要素
IMap pMap = axMapControl1.Map; IActiveView pActiveView = pMap as IActiveView; IEnvelope pEnvelope = axMapControl1.TrackRectangle(); ISelectionEnvironment pSelEnv = new SelectionEnvironmentClass(); pSelEnv.DefaultColor = GetRGB(110, 120, 210); pMap.SelectByShape(pEnvelope, pSelEnv, false); pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null); null,
集的属性和方法。 • Add-将本图层的一个要素添加到图层的选择集中; • SelectFeatures-使用一个过滤器把符合要求的要素放 入图层的选择集中;
• Clear-把图层的所有选择集清空。
注:选择集有两种,要素选择集和元素选择集, PageLayout只有元素选择集,Map则有元素选择集和要素
pElement.Geometry = pPolyline as IGeometry;
IGraphicsContainer pGraCon = pMap as IGraphicsContainer;
pGraCon.AddElement(pElement, 0);
axMapControl1.ActiveView.PartialRefresh(esriViewDraw Phase.esriViewGraphics, null, null); 8
刷新地图
10
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
IActiveView接口
IActiveView接口的重要属性和方法:
• Extent—返回Map对象当前视图的范围,返回值为一
个Envelope对象;
• FullExtent—返回Map对象当前视图的全图范围; • ScreenDisplay—用于指向一个ScreenDisplay对象; • PartialRefresh—Map对象视图的刷新方法,通过指定 esriViewDrawPhase参数,可以实现不同方式的局部刷 新。 11
主要内容
A. 图层对象 B. 屏幕显示对象 C. 页面布局对象 D. 地图排版 E. Element对象
• • • • • ILayer接口 要素图层 CAD文件 TIN图层 GraphicsLayer
• • • •
Page对象 SnapGrid对象 SnapGuides对象 RulerSettings对象
pPoint.PutCoords(1, 5);
pPolyline.FromPoint = pPoint; pPoint.PutCoords(80, 5); pPolyline.ToPoint = pPoint;
7
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
其他要素会消失掉;
• Renderer-设置图层的着色对象; • DisplayAnnotation-设置要素图层是否出现标注,如果
为True,用户可以依据图层的某个字段进行标注。
17
图层对象-要素图层-IFeatureSelection
IFeatureSelection接口负责管理一个图层中要素的选择
6
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
IGraphicsContainer接口
IGraphicsContainer接口的AddElement方法
IMap pMap = axMapControl1.Map;
IPolyline pPolyline = new PolylineClass(); IPoint pPoint = new PointClass();
using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; private void AddCadLayers(string strCadPath, string strCadName, AxMapControl pMapControl) { IWorkspaceFactory pCadFactory = new CadWorkspaceFactoryClass(); IWorkspace pWorkspace = pCadFactory.OpenFromFile(strCadPath, 0); ICadDrawingWorkspace pCadDrawingWorkspace = pWorkspace as ICadDrawingWorkspace; ICadDrawingDataset pCadDataset = pCadDrawingWorkspace.OpenCadDrawingDataset(strCadName); ICadLayer pCadLayer = new CadLayerClass(); pCadLayer.CadDrawingDataset = pCadDataset; pMapControl.AddLayer(pCadLayer, 0); }
出现Tip; • TipText-图层提示文字;
• SpatialReference-设置图层的空间参考。
13
图层对象-要素图层
1. 要素图层用于表示离散的矢量对象的信息。
2. 要素图层的主要接口主要有: • IFeatureLayer接口 • IGeoFeatureLayer接口 • IGeoDataset接口
例:IFeatureLayer接口的Search方法(P87)
15
图层对象-要素图层-IFeatureLayer
DataSourceType的类型:
16
图层对象-要素图层-IGeoFeatureLayer
IGeoFeatureLayer接口继承了ILayer接口和
IFeatureLayer两个接口,CadFeatureLayer、 FeatureLayer、GdbRasterCatalogLayer等3个图层类实 现了该接口。主要属性和方法有: • SearchDisplayFeature-只显示复合查询要求的要素,
第五讲 地图组成及图层控制(1)
1
• 课 题:地图组成及图层控制 • 目的要求:本章是GIS二次开发的重点内容之一,主要介 绍ArcGIS Engine中的地图对象、图层对象、屏幕显示对象 、页面布局对象、地图排版、Element对象、MapGrid对象 模型、MapSurround对象、Style对象等,通过介绍这些对 象,了解这些对象的相关接口及这些接口的属性、方法。 • 教学重点:各对象、接口及接口的重要属性、方法 • 教学难点:在实际开发中运用各对象进行图层添加与删除 、各种设置等 • 教学课时:6 • 学术前沿:
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
地图对象
• IMap接口 • IGraphicsContainer接口 • IActiveView接口 • IActiveViewEvents接口 • IMapBookmark接口 • ITableCollection接口
• IFeatureSelection接口
• IFeatureLayerDefinition接口 • ILayerFields接口
• IIdentify接口
14
图层对象-要素图层-IFeatureLayer
IFeatureLayer接口的主要属性和方法:
• DataSourceType-返回图层的数据源属性; • Search-返回一个ICursor的对象。
图层对象
• ILayer接口 • 要素图层 • CAD文件 • TIN图层 • GraphicLayer
屏幕显示对象 页面布局对象
3
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
• 数据的管理容器; • 数据显示的主要载体; • 共35个接口,如IMap、IGraphicsContainer、 IActiveView、IActiveViewEvents、IMapBookmark、 ITableCollection等; • 能显示两类图形,一类是地理数据,一类是元素。
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
IGraphicsContainer接口
IGraphicsContainer接口的DeleteElement方法
• IGraphicsContainer pGraCon = axMapControl1.Map as IGraphicsContainer; • pGraCon.Reset(); • IElement pElement; • pElement = pGraCon.Next(); • while (pElement != null) • { • pGraCon.DeleteElement(pElement); • pElement = pGraCon.Next(); •} • axMapControl1.ActiveView.Refresh();
IGraphicsContainer接口
IGraphicsContainer接口的AddElement方法
ILineElement pLineElement = new LineElementClass(); IElement pElement = pLineElement as IElement;
• 图形元素 • 框架元素
12
图层对象-ILayer接口
ILayer接口是所有图层类都实现的接口,该接口定义了所
有图层的公共方法和属性。 • Name-返回图层名称; • MaximumScale(MinimumScale)-显示或设置图层可以 出现的最大(最小)比例尺;
• ShowTips-鼠标放在图层中某个要素上的时候,是否会
5
湖南城市学院
GIS专业
GIS二次开发
•使用ArcGIS Engine 9.3
Map对象
IGraphicsContainer接口
Map对象通过IGraphicsContainer接口来管理 图形元素和框架元素。 AddElement—添加元素 UpdateElement—更新元素 DeleteElement—删除元素