版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主要内容,一、Map对象 二、Layer对象,一、 Map对象,地图的组成 打开ArcMap程序后,用户首先看到的是数据视图 (data view) 。 ArcMap的主要功能查看数据和地理分析都是在这个视图中完成的。数据视图其实是一个Map对象。,一、 Map对象,地图的组成 在ArcMap中,可以显示在Map上的图像分为两大类,即地理数据和图形 element(元素),他们的共同特征是这两者都有Geometry属性,拥有明确的几何形状。 1、地理数据包括矢量类型的要素数据、栅格数据、TIN数据等,这些数据保存在地理数据库或数据文件中,他们是用于GIS分析制图的源数据; 2、元素是另一种可以
2、显示在Map上的对象。在使用ArcMap的过程中,用户可以使用Draw”工具栏的图形工具在Map上直接绘制一个矩形或者线等对象,在PageLayout视图中也给地图上插入指北针、图例、比例尺等图形对象,这些都是图形元素,它们被用于地图制版过程中。,一、 Map对象,地图的组成 在ArcMap中, Map对象具有双重身份,一方面是数据的管理容器,可以加载地理数据和可视化元素,扮演了一个数据管理器的角色;另一方面, 又可以让用户看到这些数据,即扮演了一个数据显示器的角色。当程序员把地理数据加载到Map对象的时候,它是数据的管理者;在刷新地图、改变显示范围的时候,它就是一个数据的显示者。,一、 Ma
3、p对象,地图的组成 Map组件的主要接的有:IMap, IGraphicContainer, IActiveView等,如图所示。,一、 Map对象,IMap接口图层管理 Map接口是开始多数GIS任务的起点,主要用于管理Map对象中的Layer对象、要素选择集、标注引擎和空间参考等对象。 Map对象可以显示地理数据,而这些地理数据都是通过某个图层引入到地图对象中的,因此可以认为Map对象是一个存放Layer对象的容器,Map接口定义了大量的方法来操作它其中的图层对象。下而简要介绍几个主要的方法: AddLayer方法可以将一个图层对象加入Map对象中去 AddLayers可以一次加入一个或多
4、个图层,当然多个图层对象必须放在一个 EnumLayer对象中才能被引入,后者是一个图层枚举对象,可以保存多个图层的指 针。 CIearLayers可以清除Map中所有的图层; LayerCount则指明这个地图对象中包含了多少个图层对象。 Getlayer(index)属性可以根据地图中图层的索引值得到具体的图层对象,如: Layer player; player=pMap.get_Layer(2);,一、 Map对象,IMap接口图层管理 如图5-2所示,图中是MapControl控件的属性对话框中的图层列表,其中可以 看到3号图层(states)放在列表框的最下面:,在添加地图的过程中,
5、第一个加入Map对象的图层是0号,第二个图层就是1号,0号图层放在图层对话框中最上面,但是在地图中实际放在最下面。如果在一个Map中放入两个面类型的图层,会发现第一次加入的图层会被后一次加入的图层所掩盖。这种层概念是数据组织的一种有效形式。,一、 Map对象,IMap接口选择对象 在ArcMap使用“Select Features”工具在地图上拖曳后,被选择的要素将会高亮显示,即使这些要素放在不同图层上的。这个工具没有什么限制,不管是点、线还是多边形,都可以同时选择到。这些被高亮显示的要素称为“FeatureSelection”(要素选择集),程序有多种方式可以用于选择要素,如SelectBy
6、Shape方法就是其中之。 SelectByShape方法实现了ArcMap软件“select Features”功能,选择Map所有处于拖曳范围内的要素,无论是哪个图层,把选择的要素添加到Map的Selectionset里面。,一、 Map对象,IMap接口选择对象,一、 Map对象,IMap接口选择对象 IMap.FeatureSelection属性可以返回map中被选择的要素,SelectionCount 属性可以得到Map对象的要素选择集中的要素的数目,CIearSelection方法用于清 除Map对象中的选择集。,一、 Map对象,IActiveView接口 IActiveView
7、接口定义了Map对象的数据显示功能。这个接口管理着ArcMap 主要的程序窗口和所有绘制图形的方法。使用这个接日的方法可以改变视图的范围, 可以得到ScreenDisplay对象的指针,可以显小或隐藏标尺和滚动条,也可以刷新 视图。 在ArcObjects中,有两个对象实现了这个接口, Map和PageLayout。这两 个对象分别代表了ArcMap中两种不同的视图:数据(Data)视图和布局(Layout)视图, 在任何一个时刻仅仅只有一个视图能够处于活动状态。,一、 Map对象,IActiveView接口 在使用MapControl控件编程的方式下获得ActiveView: IMap pM
8、ap; pMap=axMapControll.Map; IActiveView pActiveView; pActiveView=pMap as IActiveView; 或pActiveView=axMapControll .ActiveView; 在PageLayoutControl控件中获得正在使用的地图对象的方法如下: IActiveView pActiveView; pActiveView=axPageLayoutControll.PageLayout as IActiveView; 或pActiveView=axPageLayoutControll.ActiveView; pMap
9、=pActiveView.FocusMap;,一、 Map对象,IActiveView接口,一、 Map对象,IActiveView接口 Extent属性返回Map对象当前视图的范围,它是一个Envelope对象,即所谓 的包络线对象。FuIlExtent属性则可以返回视图的全图范围,因此要显小整幅地图 的代码为: /将当前地图的范围设置为全幅范围 pActiveView. Extent=pActiveView.FuIlExtent; pActiveView.Refresh(); ScreenDisplay属性指向一个ScreenDisplay对象。每一个视图对象都有一个 ScreenDisp
10、lay对象用于控制视图的图形绘制工作,使用这个属性会得到一个与当 前正在使用的视图相关的ScreenDisplay对象。例如要在数据视图上绘制一条线 必须先得到一个当前地图对象的IActiveView接口,通过IActiveView.ScreenDisplay获得地图的ScreenDisplay对象的指针。ScreenDisplay对象将在后而的章节中详细叙述。,一、 Map对象,IGraphicsContainer接口 Map对象可以显示图形元素(Graphics Element),它使用IGraphicsContainer 接口来管理这些元素对象(包括图形元素和框架元素)。IGraphic
11、sContainer返回的是 Map对象中处于活动状态的图形图层(graphics layer)的指针。,一、 Map对象,IGraphicsContainer接口 使用这个接口的方法往Map中添加元素,实际上是往其中的一个图形图层上添 加元素对象的过程,如下面代码所示。 IGraphicsContainer pGraphicsContainer; pGraphicsContainer=pMap as IGraphicsContainer 通过AddElement方法用于将一个元素放入Map对象中,下而是一个添加元素的例子 /定义个line类刑的Element ILineElement pLi
12、neEle; pLineEle=new LineElementClass(); /设段这个Element的符、J对象 pLineEle.Symbol=pSymbol; Element pEle; pEle=pLineEle as Element; /设置元素的集合体对象属性 pEle.Geometry=pGeo; / 将元素添加到Map对象 pGraphicsContainer.AddElement(pEle, 0); pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,nu1l, null),二、 Map对象,IGrap
13、hicsContainer接口 IGraphicsContainer.DeleteElement方法用于删除Map对象中的一个给定的元 素。 如果在Map中改变了一个元素的形状或者符号对象,用户希望能够即时更新后在地图上表现出来,这个更新的方法也非常简单,使用UpdateElement即可。,二、 Map对象,IGraphicsContainer接口 IGraphicsContainer.LocateElements方法是使用一个点来选择元素,它击要传 入一个点对象和一个容差值,Map对象会将所有处于点容差周围的元素选择到。下 面的例子中,代码在MapControl的MouseDown事件中:
14、 Point pPt; pPt=new PointClass(); /获得鼠标点击处的点对象 pPt.PutCoords(e.mapX, e.mapY); IEnumElement pEnumEle; /选择元素,其中1为容忍值 pEnumEle=pGraphicsContainer.LocateElements(pPt, 1); Element pElement; /获得单个元素 pElement=pEnumEle.Next(); 另外一个可以使用的是LocateElementsByEnvelope方法,它和SelectByShape方法类同,是使用鼠标拖曳一个矩形区域,从而选择到这个区域内
15、的所以元素。,二、 Layer对象,ILayer接口 ILayer是所有图层类都实现了的一般接口,它定义了所有图层的公共方法和属性,如Name属性可以返回图层名称,MaximumScale和 MinimumScale可以用于获取和设置图层可以显示的最大和最小比例。 ILayer.ShowTips属性用于指小当鼠标放在图层某个要素上的时候,是否会出现Tip(提示),而TipText确定图层提小显小的区域。下面是展示一个显示图层Tip的代码:,二、 Layer对象,要素图层(FeatureLayer) IFeatureLayer接口 要素数据是GIS中最常使用的数据类型之一,它可以用于表示离散矢量
16、对象的信息,而承载要素数据的要素图层(FeatureLayer)是本节研究的重点。本节会介绍要素图层的几个重要接口定义的方法和属性。 IFeatureLayer接口用于管理要素图层的数据源,即要素类(Featureclass)。 IFeatureLayer.DataSourceType属性返回要素图层的数据源的类型,FeatureLayer的数据源有: Personal Geodatabase SDE Shapefile Coverage Edge CAD,二、 Layer对象,要素图层(FeatureLayer) IFeatureLayer接口 要素数据是GIS中最常使用的数据类型之一,它可
17、以用于表示离散矢量对象的信息,而承载要素数据的要素图层(FeatureLayer)是本节研究的重点。本节会介绍要素图层的几个重要接口定义的方法和属性。 IFeatureLayer接口用于管理要素图层的数据源,即要素类(Featureclass)。 IFeatureLayer.DataSourceType属性返回要素图层的数据源的类型,FeatureLayer的数据源有: Personal Geodatabase SDE Shapefile Coverage Edge CAD,二、 Layer对象,要素图层(FeatureLayer) IFeatureLayer接口 新建一个要素图层对象必须引入
18、GeoDatabase库,然后使用下面的代码: IFeatureLayer pFeatLyr; pFeatLyr=new FeatureLayerClass(); IFeatureLayer.FeatureClass属性返回要素图层使用的要素类。关于要素类的内容,会在GeoDatabase一章中详细介绍。 如果需要对要素图层进行查询,可以使用IFeatureLayer.Search方法,它将返 回一个ICursor类型的对象。如在一幅世界地图中寻找人日多于5000万的国家或者 是国土而积大于100万平方公里的国家,都可以使用Search方法实现。,二、 Layer对象,要素图层(FeatureLayer) IFeatureLayer接口 下面给出一个查找要素的方法,需要要传入过滤参数和图层: private void searchFeatures(string sqlfilter,IFeatureLayer pFeat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年8月美容师初级练习题库及参考答案
- 1月道路路基施工与维护模拟题(含参考答案)解析
- 2026年机械工程中的装配技术与优化方法
- 某化工厂研发管理制度
- 2026年火锅餐饮产业的发展趋势与未来
- 2026年施工技术在土木工程中的应用
- 2026年保湿是你洗去消除干萎的法宝
- 2026上海中医药大学附属龙华医院科室科主任岗位招聘1人备考题库含答案详解(黄金题型)
- 某食品厂节能环保制度
- 2026广东茂名市高州市公益性岗位招聘11人(第一批)备考题库含完整答案详解(全优)
- 全国自考《英语二》高频词和常用词缀
- 经营煤炭合伙协议书
- 香港咨询服务合同协议
- 分级护理课件教学课件
- RPA财务机器人开发与应用(课程标准)8.10
- 农网工程资料样表
- 外卖行业交通安全培训
- 毕业论文写作指导-第5章毕业论文的写作
- 广西机电职业技术学院工作人员招聘考试真题2022
- 汽车音响的组成及工作原理
- 石大体育学院专题讲座:教练员职业素养及管理
评论
0/150
提交评论