![第04章 地图组成及图层控制(一)x_第1页](http://file4.renrendoc.com/view/a176226fed624117246f3bc55ea22696/a176226fed624117246f3bc55ea226961.gif)
![第04章 地图组成及图层控制(一)x_第2页](http://file4.renrendoc.com/view/a176226fed624117246f3bc55ea22696/a176226fed624117246f3bc55ea226962.gif)
![第04章 地图组成及图层控制(一)x_第3页](http://file4.renrendoc.com/view/a176226fed624117246f3bc55ea22696/a176226fed624117246f3bc55ea226963.gif)
![第04章 地图组成及图层控制(一)x_第4页](http://file4.renrendoc.com/view/a176226fed624117246f3bc55ea22696/a176226fed624117246f3bc55ea226964.gif)
![第04章 地图组成及图层控制(一)x_第5页](http://file4.renrendoc.com/view/a176226fed624117246f3bc55ea22696/a176226fed624117246f3bc55ea226965.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GIS二次开发
主讲老师:吴德华
联系电话/p>
电子邮箱:hncuwdh@
2第4章地图组成及图层控制目的要求:
了解和掌握ArcGISEngine地图对象、图层对象、屏幕显示对象等对象的使用。教学重点:
地图对象。教学难点:
地图对象接口的使用。1.地图对象3.屏幕显示对象4.页面布局对象5.地图排版2.图层对象第4章地图组成及图层控制6.Element对象地图对象的主要接口:IMap接口IGraphicsContainer接口IActiveView接口IActiveViewEvents接口IMapBookmark接口ITableCollection接口4.1地图对象概念:数据的管理容器;数据显示的主要载体。共35个接口,如IMap、IGraphicsContainer、IActiveView、IActiveViewEvents、IMapBookmark、ITableCollection等;能显示两类图形,一类是地理数据,一类是元素如矢量点、线、面数据,栅格数据,TIN数据等。如指北针、图例等。4.1地图对象例:选择要素IMappMap=axMapControl1.Map;IActiveViewpActiveView=pMapasIActiveView;IEnvelopepEnvelope=axMapControl1.TrackRectangle();ISelectionEnvironmentpSelEnv=newSelectionEnvironmentClass();pSelEnv.DefaultColor=GetRGB(110,120,210);pMap.SelectByShape(pEnvelope,pSelEnv,false);pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,null,null);4.1.1IMap接口Map对象通过IGraphicsContainer接口来管理图形元素和框架元素。方法: AddElement—添加元素 UpdateElement—更新元素
DeleteElement—删除元素4.1.2IGraphicsContainer接口IMappMap=axMapControl1.Map;IPolylinepPolyline=newPolylineClass();IPointpPoint=newPointClass();pPoint.PutCoords(1,5);pPolyline.FromPoint=pPoint;pPoint.PutCoords(80,5);pPolyline.ToPoint=pPoint;4.1.2IGraphicsContainer接口ILineElementpLineElement=newLineElementClass();IElementpElement=pLineElementasIElement;pElement.Geometry=pPolylineasIGeometry;IGraphicsContainerpGraCon=pMapasIGraphicsContainer;pGraCon.AddElement(pElement,0);axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);4.1.2IGraphicsContainer接口IGraphicsContainer接口的DeleteElement方法IGraphicsContainerpGraCon=axMapControl1.MapasIGraphicsContainer;pGraCon.Reset();IElementpElement;pElement=pGraCon.Next();while(pElement!=null){pGraCon.DeleteElement(pElement);pElement=pGraCon.Next();}axMapControl1.ActiveView.Refresh();4.1.2IGraphicsContainer接口IActiveView接口是Map对象最主要、最常用的接口之一,该接口定义了Map对象的数据显示功能。通过该接口,可以在Map上:绘制图形改变视图范围获取ScreenDisplay对象的指针显示或隐藏标尺和滚动条刷新地图4.1.3IActiveView接口IActiveView接口的重要属性和方法:Extent—返回Map对象当前视图的范围,返回值为一个Envelope对象;FullExtent—返回Map对象当前视图的全图范围;ScreenDisplay—用于指向一个ScreenDisplay对象;PartialRefresh—Map对象视图的刷新方法,通过指定esriViewDrawPhase参数,可以实现不同方式的局部刷新。4.1.3IActiveView接口ILayer接口是所有图层类都实现的接口,该接口定义了所有图层的公共方法和属性。Name-返回图层名称;MaximumScale(MinimumScale)-显示或设置图层可以出现的最大(最小)比例尺;ShowTips-鼠标放在图层中某个要素上的时候,是否会出现Tip;TipText-图层提示文字;SpatialReference-设置图层的空间参考。4.2.1ILayer接口4.2图层对象要素图层用于表示离散的矢量对象的信息。要素图层的主要接口主要有:IFeatureLayer接口IGeoFeatureLayer接口IGeoDataset接口IFeatureSelection接口IFeatureLayerDefinition接口ILayerFields接口IIdentify接口4.2.2要素图层IFeatureLayer接口的主要属性和方法:DataSourceType-返回图层的数据源属性;Search-返回一个ICursor的对象。IFeatureLayer例:IFeatureLayer接口的Search方法(P65)DataSourceType的类型:IFeatureLayerIGeoFeatureLayerIGeoFeatureLayer接口继承了ILayer接口和IFeatureLayer两个接口,CadFeatureLayer、FeatureLayer、GdbRasterCatalogLayer等3个图层类实现了该接口。主要属性和方法有:SearchDisplayFeature-只显示符合查询要求的要素,其他要素会消失掉;Renderer-设置图层的着色对象;DisplayAnnotation-设置要素图层是否出现标注,如果为True,用户可以依据图层的某个字段进行标注。IFeatureSelectionIFeatureSelection接口负责管理一个图层中要素的选择集的属性和方法。Add-将本图层的一个要素添加到图层的选择集中;SelectFeatures-使用一个过滤器把符合要求的要素放入图层的选择集中;Clear-把图层的所有选择集清空。注:选择集有两种,要素选择集和元素选择集,PageLayout只有元素选择集,Map则有元素选择集和要素选择集。 ILayerFields接口提供了Field、FieldCount、FieldInfo和FindField等属性和方法,用于获取要素类的字段信息。ILayerFieldsIIdentify接口定义了一个方法Identify,用于获取图层的单个要素,返回一个IArray数组对象。IIdentify Map对象能够载入多种格式的地理和非地理数据,其中便包括AutoCAD的DWG文件。 DWG文件是两种不同形式的混合体:一是要素图层,保存矢量数据,使用FeatureLayer对象管理;二是栅格图像,使用CadLayer对象管理。
当DWG文件载入Map对象时,ArcEngine将CAD元素分为4种类型:点、线、多边形和标注,并在要素的属性表中建立标识字段,而不按照DWG文件本身的图层号进行分层。CAD文件中的文字可以使用CadAnnotationLayer对象来操作。4.2.3CAD文件
下面的代码展示了在ArcEngine中如何加载DWG文件:usingESRI.ArcGIS.Geodatabase;usingESRI.ArcGIS.DataSourcesFile;privatevoidAddCadLayers(stringstrCadPath,stringstrCadName,AxMapControlpMapControl)
{IWorkspaceFactorypCadFactory=newCadWorkspaceFactoryClass();IWorkspacepWorkspace=pCadFactory.OpenFromFile(strCadPath,0);ICadDrawingWorkspacepCadDrawingWorkspace=pWorkspaceasICadDrawingWorkspace;ICadDrawingDatasetpCadDataset=pCadDrawingWorkspace.OpenCadDrawingDataset(strCadName);ICadLayerpCadLayer=newCadLayerClass();pCadLayer.CadDrawingDataset=pCadDataset;pMapControl.AddLayer(pCadLayer,0);
}4.2.3CAD文件ITinLayer接口定义了TIN图层如何在Map对象中显示的方法和属性。Dataset-显示TIN图层的数据源;DisplayField-TIN图层的主要显示字段;AddRenderer-用于加入一个着色对象;ClearRenderer-清除TIN图层中所有的着色对象;GetRenderer-通过索引值获取着色对象;RendererCount-返回着色对象的数目。4.2.4TIN图层4.2.4TIN图层4.2.5GraphicsLayer
GraphicsLayer是一个抽象类,当在MapControl控件上绘制图形时,这些绘制的图形所在的层就是GraphicsLayer对象。GraphicsLayer类泛化出了CompositeGraphicsLayer、FDOGraphicsLayer(FeatureDataObject)、GlobeGraphicsLayer、GraphicsLayer3D、GraphicsSubLayer等类。
每个Map对象都管理着一个CompositeGraphicsLayer对象,该对象是一个图形图层集合,该集合中有一个缺省的基本图形图层,可以通过属性BasicGraphicsLayer直接获取。该图层是默认的,不能在CompositeGraphicsLayer对象中删除,CompositeGraphicsLayer对象提供了集合中添加、删除、查找图层的方法。4.2.5GraphicsLayerFDOGraphicsLayer是一个与要素相关的标注图层,可以有两种方法添加标注:一是Label方法,即选取要素,逐个添加标注文本;二是Annotation方法,可以对要素图层进行自动标注,并且标注的文本信息可以保存在数据库中。4.3屏幕显示对象MapControl中的每个视图都有一个ScreenDisplay对象,用于控制视图中的图形绘制。ScreenDisplay对象除了管理窗体屏幕的显示属性外,也管理缓存和视图屏幕的变化等。
可以通过IActiveView接口的ScreenDisplay属性获取ScreenDisplay对象。ScreenDisplay对象都拥有DisplayTransformation对象,用于设备单位和地图单位的转换。InterfacesDescriptionIConnectionPointContainer(Display)Supportsconnectionpointsforconnectableobjects.IDisplayProvidesaccesstomembersthatcontroltheDisplay.IDrawProvidesaccesstomembersthatcontroldrawing.IDynamicScreenDisplayProvidesaccesstodynamicscreendisplay.IScreenCacheManagerProvidesaccesstoaScreenDisplay'scaches.IScreenDisplayProvidesaccesstomembersthatcontrolScreenDisplay.IScreenDisplay2ProvidesaccesstoadditionalmembersthatcontroltheScreenDisplay.IScreenDisplayZoomProvidesaccesstozoomingthescreendisplay.IScreenInvalidateProvidesaccesstoaScreenDisplay'srefreshmethods.ITransformEventsProvidesaccesstomembersthatcontrolTransformEventsPageLayout对象和Map对象一样,都是图形元素的容器,但是PageLayout对象除了保存图形元素外,还可以保存框架元素(FrameElement)。PageLayout对象主要实现了IPageLayout接口,该接口定义了修改页面版式的方法和属性,包括图形的位置属性,标尺、对齐网格、确定页面显示在屏幕上的方法。
通过IPageLayout接口可以管理RulerSettings、SnapGrid、SnapGuides和Page等对象。IPageLayout接口的主要属性和方法:Page-获取放在PageLayout对象中的Page对象;RulerSettings-获取PageLayout对象控制的标尺对象;SnapGrid-与VerticalSnapGrid一起控制PageLayout对象中显示的网格对象;VerticalSnapGrid-与SnapGrid一起控制PageLayout对象中显示的网格对象;ZoomToWhole-设置PageLayout对象以最大比例尺显示;ZoomPercent-设置按照输入的比例显示;ZoomToPercent-设置按照输入的比例显示;ZoomToWith-让视图的显示范围与控件的宽度一致。4.4页面布局对象PageLayout对象还实现了IGraphicsContainer接口和IGraphicsContainerSelect接口。IGraphicsContainer接口用来管理元素;IGraphicsContainerSelect接口用来管理被选择的元素。4.4页面布局对象AllDescriptionDominantElementDominantelement.ElementSelectedIndicatesiftheelementisselected.ElementSelectionCountThenumberofselectedelements.SelectAllElementsSelectsallelements.SelectedElementReturnsthenthselectedelement.UseSelectioncounttogetthenumberofselectedelements.SelectedElementsTheselectedelements.SelectElementSelectsthespecifiedelement.SelectElementsSelectsthespecifiedelements.SelectionBoundsTheboundsoftheselection.SelectionTrackerReturnsthetrackerforthenthselectedelement.UseSelectioncounttogetthenumberofselectedelements.UnselectAllElementsUnselectsallelements.UnselectElementUnselectsthespecifiedelement.UnselectElementsUnselectsthespecifiedelements.4.4页面布局对象4.5地图排版Page对象只作为一个装载地图数据的容器,不提供查询和分析的功能。Page对象的主要接口是IPage。4.5.1Page对象
IPage接口的属性和方法:Background-设置背景样式;BackgroundColor-设置背景颜色;Border-设置Page的边框;Units-获取Page所使用的单位。4.5.1Page对象 Page对象还实现了IPageEvents接口,拥有PageColorChanged、PageMarginsChanged、PageSizeChanged和PageUnitsChanged等4个事件。Units-获取Page所使用的单位。
此外,ArcEngine还提供了esriPageFromID枚举值设置Page对象的尺寸,使用esriPageFromID比用PutCustomSize设置Page尺寸的速度更快。4.5.2
SnapGrid对象 SnapGrid是PageLayout上用于摆放元素而设置的辅助点,便于用户对齐元素。可以通过IPageLayout接口的SnapGrid属性获取SnapGrid对象。SnapGrid对象实现了ISnapGrid接口,主要属性和方法有:HorizontalSpacing:设置网点之间的水平距离;VerticalSpacing:设置网点之间的垂直距离;IsVisible:确定网点是否处于可见状态;Draw:将SnapGrid对象绘制在Page上。4.5.2
SnapGrid对象4.5.3
SnapGrids对象SnapGuides对象是绘制在PageLayout上的辅助线,分为水平辅助线和垂直辅助线两种。可以通过IPageLayout接口的HorizontalSnapGuides或VerticalSnapGuides获得,每个SnapGuides都管理着一个Guide集合。SnapGuides对象实现了ISnapGuides接口,主要的属性和方法有:AddGuides:将一个Guide放在指定的位置;AreVisible:设置SnapGuides是否可见;Draw:绘制辅助线;DrawHighlight:绘制高亮辅助线;GuideCount:返回SnapGuides中Guide的数目;RemoveAllGuides:清除所有Guide;RemoveGuide:按照索引值清除Guide。4.6Element对象 Element对象是地图上不保存到数据库中的元素,是内存中的对象,当MapControl显示地图发生变化时,这些对象就会消失。Element对象分为两大部分:图形元素(GraphicElement)和框架元素(FrameElement)。IElement接口是所有图形元素和框架元素都实现的接口,提供了Geometry属性和查询、绘制元素的方法。4.6Element对象在Map对象和PageLayout对象显示的数据除了地理数据之外,另一种即为元素数据(Element对象)。GraphicsElement都是作为图形的形式而存在,在Map视图或者PageLayout视图上是可见的;FrameElement是作为不可见的容器而存在的。Map对象或者PageLayout对象可以通过IElement接口和IGraphicsContainer接口来管理Element对象。IGraphicsContainer接口—添加、删除、更新Element;IElement—确定Element对象的Geometry属性。4.6Element对象图形元素GroupElementMarkerElementLineElementTextElementDataGraphElementPictureElementFillShapeElement框架元素FrameElementMapFrameMapSourroundFrameOleFrameTableFrame4.6Element对象4.6.1图形元素LineElement对象:在Map视图或PageLayout视图中表现为线的形式。ILineElement接口:提供Symbol设置线的样式4.6.1图形元素MarkerElement对象:在Map视图或PageLayout视图中表现为点的形式。IMarkerElement接口:提供Symbol设置点的样式4.6.1图形元素TextElement对象:形式有两种——保存在地理数据库中以标注类的形式存在;使用文字元素。ITextElement接口:包含ScaleText、Text、Symbol属性 ScaleText—文字尺寸; Text—字符; Symbol—文字符号。4.6.1图形元素GroupElement对象:将多个Element对象编为一组,作为一个整体使用。IGroupElement接口:AddElement、ClearElements、DeleteElement、ElementCount方法和属性分别对元素添加、清空、删除、计数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知识产权交易中的评估方法及法律问题探讨
- 社交平台在商业推广中的实战经验
- 社区健康教育中的数字化技术应用探讨
- 知识产全管理在企业发展中的作用与影响
- 电子竞技行业的人才培养机制优化研究
- 电子商务在环保领域的应用探索
- 班主任安全工作计划范文
- 社交电商平台的客户关系管理策略
- 各学校招生计划
- 广告公司实习自我总结
- 旧金山china town中文介绍课件
- (中职)表面组装技术(SMT工艺)教学课件
- 初中英语 沪教牛津版 9A U7-1 Reading Tom Sawyer paints the fence 课件
- 血液科品管圈汇报-PPT课件
- 骗提个人住房公积金检讨书
- 监控系统维保方案计划及报价
- E-learning平台使用手册(培训管理员版)
- 自动化物料编码规则
- 管道保温及面积计算公式
- 江西省日照小时数
- 卢曹康-高桩板桩码头(2)
评论
0/150
提交评论