地图的组成及相关对象.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地图 组成 相关 对象
- 资源描述:
-
,*,第 五 章,地图的组成及相关对象,第五章 地图的组成及相关对象,5.1 Map,对象,5.2,图层对象,5.1 Map,对象,5.1.1 Map,对象简介,5.1.2 Map,对象的双重身份,5.1.3 Map,对象主要实现的接口,5.1.1 Map,对象简介,Map,对象是,ArcGIS,Engine,的主要对象,在,Map,对象上能显示的图形有两类:,(,1,)地理数据,地理数据包括矢量类型的要素数据、栅格数据、,Tin,等表面数据,地理数据保存在,Geodatabase,或数据文件,(,如,Shapefile,),中,地理数据用于,GIS,分析制图的源数据,5.1.1 Map,对象简介,(,2,)元素,(Element),元素是另一种可以显示在,Map,上的对象,它分为两类:一类是图形元素,(Graphics Element),,一类是框架元素,(,FrameElement,),。,图形元素可以显示出来,而框架元素充当了“容器”的角色。,在,ArcMap,中可以使用,Draw,工具在,Map,上直接绘制一个矩形、圆形、文本等对象,在布局视图上也可以给地图添加指北针、图例、比例尺等图形对象,这些都是图形元素。,5.1.2 Map,对象的双重身份,Map,对象有双重身份,一方面是,数据的管理容器,,可以加载,地理数据,和,图形元素,,扮演了数据管理器的角色;另一方面它又可以让用户看到这些数据,即扮演了,数据显示器,的角色。,当加载数据到,Map,对象的时候,,Map,对象是数据的管理者;当改变视图范围、刷新地图的时候,它是数据的显示者。,5.1.3 Map,对象主要实现的接口,IMap,IGraphicContainer,IActiveView,、,IMapBookmarks,IMap,接口,IMap,接口是开始多数,GIS,任务的起点,IMap,接口主要用于管理,Map,对象中的,Layer,对象、图层的要素选择集、,MapSourround,对象、标注引擎和空间参考等对象,Map,对象是一个存放,Layer,对象的容器,,IMap,接口定义了大量的属性和方法用于访问和操作它其中的图层对象,IMap,接口的属性,IMap,接口的方法,IMap,接口的主要属性和方法简介,AddLayer,方法,将一个图层对象加入,Map,对象中,AddLayers,方法,一次加入一个或多个图层,多个图层对象必须放在一个,EnumLayer,对象中才能被引用,EnumLayer,对象是个图层枚举对象,可以保存多个图层的指针,IMap,接口的主要属性和方法简介,ClearLayers,方法,清除,Map,中的所有的图层,DeleteLayer,方法,删除,Map,中的某一个图层,LayerCount,属性,Map,中的图层对象的个数,get_Layer,(Index),属性,根据地图中图层的索引值得到具体的图层对象,IMap,接口的主要属性和方法简介,SelectByShape,方法,选择,Map,中的和指定的,shape,相交的所有,FeatureLayer,图层,的要素并高亮显示,无论是哪个图层,它把选择的要素都添加到,Map,的选择集里,类似,ArcMap,里的 工具,用法:,object,.SelectByShape(,Shape,env,justOne,),其中:,Shape,:表示一个,IGeometry,对象,env,:表示一个,ISelectionEnvironment,对象,,是设置选,择环境的,justOne,:表示,是否在选择到一个实体就停止搜索,通过,SelectByShape,方法选择要素代码示例,IMap pMap;,IActiveView pActiveView;,pMap=axMapControl1.Map;,pActiveView=pMap as IActiveView;,/得到一个Envelop对象,IEnvelope pEnv;,pEnv=axMapControl1.,TrackRectangle,();,/新建选择集环境对象,ISelectionEnvironment pSelectionEnv;,pSelectionEnv=new SelectionEnvironmentClass();,/选择要素,将它们放入到选择集,pMap.,SelectByShape,(pEnv,pSelectionEnv,false);,pActiveView.,PartialRefresh,(esriViewDrawPhase.esriViewGeoSelection,null,null);,IMap,接口的主要属性和方法简介,SelectFeature,方法,可以将在,Map,上获得的一个要素放到这个要素的图层的选择集中,高亮显示,FeatureSelection,属性,可以返回,Map,中被选择的要素,SelectionCount,属性,可以得到,Map,中的要素选择集中要素的个数,ClearSelection,方法,用于清除,Map,中的选择集,通过,FeatureSelection,属性返回被选择要素的属性信息,IEnumFeature pEnumFeat;,IEnumFeatureSetup pEnumFeatureSetup;,/获得选择集对象,pEnumFeat=(IEnumFeature)pMap.,FeatureSelection,;,pEnumFeatureSetup=pEnumFeat as IEnumFeatureSetup;,pEnumFeatureSetup.,AllFields,=true;,IFeature pFeat;,/得到选择集中的一个要素对象,pFeat=pEnumFeat.,Next,();,while(pFeat!=null),/在列表框中显示被选择要素的某个字段的值,listBox1.Items.Add(pFeat.,get_Value,(2);,pFeat=pEnumFeat.,Next,();,IGraphicsContainer,接口,Map,对象可以显示图形元素(,Element,),,Map,对象通过,IGraphicsContainer,接口来管理这些元素对象(包括图形元素和框架元素)。,IGraphicsContainer,返回的是,Map,对象中处于活动状态的图形图层(,graphics layer,),的引用指针,它可以是一个基本的图形图层对象(,basic graphics layer,),也可以是,CompositeGraphicsLayer,中的一个图层或者是一个,FDOGraphicsLayer,注记图层。,IGraphicsContainer,接口的方法,IGraphicsContainer,接口的主要方法简介,AddElemen,方法,用于将一个图形元素放入,Map,对象的图形图层中,AddElements,方法,一次加入一个或多个图形元素到,Map,对象的图形图层中,DeleteElement,方法,用于删除图形图层中的一个给定的图形元素,DeleteAllElements,用于删除图形图层中的所有的图形元素,通过,AddElemen,方法往,Map,中添加元素的代码示例,Dim,pMap,As,IMap,Dim,pActiveView,As,IActiveView,pMap=axMapControl1.Map;,pActiveView=pMap as IActiveView;,IPoint pt;,pt=axMapControl1.,ToMapPoint,(e.x,e.y);,IMarkerElement pMarkerElement;,pMarkerElement=new MarkerElementClass();,IElement pElement;,pElement=pMarkerElement as IElement;,pElement.,Geometry,=pt;,pGraphicsContainer=pMap as IGraphicsContainer;,pGraphicsContainer.,AddElement,(IElement)pMarkerElement,0);,pActiveView.,Refresh,();,IGraphicsContainer,接口的主要方法简介,LocateElements,方法,使用一个点来选择图形元素。这个方法需要传入一个点对象和一个容差值,,Map,对象会将所有处于点容差周围的元素选择到,LocateElementsByEnvelope,方法,使用鼠标拖曳一个矩形区域,选择到这个区域内的所有的元素,IActiveView,接口,IActiveView,接口定义了,Map,对象的数据显示功能,使用,IActiveView,接口可以实现以下的功能:,改变视图的范围,刷新视图,显示或隐藏标尺和滚动条,得到,ScreenDisplay,对象的指针,IActiveView,接口的属性,IActiveView,接口的方法,IActiveView,接口的主要属性和方法简介,Extent,属性,返回,Map,对象当前视图的范围,它是一个,Envelope,对象,即所谓的包络线对象,FullExtent,属性,返回视图的全图范围,IActiveView,接口的主要属性和方法简介,ScreenDisplay,属性,指向一个,ScreenDisplay,对象,每一个视图对象都有一个,ScreenDisplay,对象用于控制视图的图形绘制工作,使用这个属性会得到一个与当前正在使用的视图相关的,ScreenDisplay,对象,地图的数据显示是由一个视图来控制的,而视图的,ScreenDisplay,对象则负责绘制图形,,ScreenDisplay,对象拥有产生任意数量的缓存(,Cache,)的本领,IActiveView,接口的主要属性和方法简介,PartialRefresh,方法,可以让视图对象使用不同的方式来局部刷新以重绘地图,用法如下:,object,.PartialRefresh,(,phase,Data,envelope,),其中:,phase,:为,esriViewDrawPhase,常数,表示绘制的状态,Data,:,object,对象,一般设置为,Nothing,envelope,:一个,IEnvelope,对象,表示刷新的范围,esriViewDrawPhase,常数,Constant,Value,Description,esriViewNone,0,Draws nothing.,esriViewBackground,1,Draws the background.,esriViewGeography,2,Draws the geography.,esriViewGeoSelection,4,Draws the selected geography.,esriViewGraphics,8,Draws the annotation.,esriViewGraphicSelection,16,Draws the selected annotation.,esriViewForeground,32,Draws the foreground.,通过,PartialRefresh,方法局部刷新的几种情形,Refresh layer,pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,pLayer,null);,Refresh all layers,pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);,Refresh selection,pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,null,null);,Refresh labels,pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);,5.2,图层对象,5.2.1,图层对象简介,5.2.2,图层对象的,Ilayer,接口,5.2.3,要素图层(,FeatureLayer,)的使用,5.2.1,图层对象简介,Map,对象可以装载地理数据,这些数据是以图层的形式放入地图对象的,相同类型的地理数据可以使用一个图层被放入地图,由于地理数据格式的多样性,因而图层类拥有众多的子类,它们使用统一的方法来操作各种类型的数据,5.2.1,图层对象简介,Map,对象中显示地图需要设置空间参考(,SpatialReference,),当第一个图层添加到,Map,中时,,Map,对象的空间参考属性就自动设置为这个图层的空间参考,后面加入的图层无论是否已经含有空间参考都将使用,Map,对象已经设置的空间参考,5.2.1,图层对象简介,Layer,对象本身没有装载数据,而仅仅是获得了数据的引用而已,是用于管理数据源的连接,地理数据始终是保存在,GeoDatabase,或者地理文件中,5.2.2,图层对象的,Ilayer,接口,Ilayer,接口简介,Ilayer,接口的主要属性和方法简介,Ilayer,接口简介,Ilayer,是所有图层类都实现的一般接口,Ilayer,接口定义了所有图层的公共属性和方法,Ilayer,接口的最新版本为,Ilayer2,Ilayer,接口的主要属性和方法简介,Name,属性,返回或设置图层的名称,MaximumScale,方法,返回或设置图层可见的最大显示比例,MinimumScale,方法,返回或设置图层可见的最小显示比例,Ilayer,接口的主要属性和方法简介,SpatialReference,属性,用于设置图层的空间参考,ShowTips,属性,用于指示当鼠标放在图层某个要素上的时候,是否会出现,Tip,(提示),get_TipText,方法,用于设置,Tip,(提示)在什么地方显示,通过,ShowTips,属性和,TipText,属性实现要素图层的提示(,Tip,)代码,private void axMapControl1_OnMouseMove(object sender,IMapControlEvents2_OnMouseMoveEvent e),IPoint pt;,pt=axMapControl1.,ToMapPoint,(e.x,e.y);,ILayer pLyr;,IFeatureLayer pFeatLyr;,pFeatLyr=(IFeatureLayer)axMapControl1.,get_Layer,(0);,pLyr=pFeatLyr as ILayer;,pFeatLyr.,DisplayField,=CITY_NAME;,string pTip;,pTip=pLyr.,get_TipText,(pt.X,pt.Y,1);,pLyr.,ShowTips,=true;,axMapControl1.,ShowMapTips,=true;,5.2.3,要素图层(,FeatureLayer,)的使用,要素数据是,GIS,中最常使用的数据类型之一,它可以用于表示离散矢量对象的信息,承载要素数据的图层即为要素图层(,FeatureLayer,),FeatureLayer,实现的重要接口有:,IFeatureLayer,、,IGeoFeatureLayer,、,IGeoDataset,、,IFeatureSelection,、,IFeatureLayerDefinition,、,ILayerFields,、,IIdentify,IFeatureLayer,接口的主要属性和方法简介,IFeatureLayer,接口用于管理要素图层的数据源,即要素类(,Featureclass,),,IFeatureLayer,接口的最新版本为,IFeatureLayer2,DataSourceType,属性,返回要素图层的数据源的类型,要素图层的数据源类型多达,12,种,详细的类型可以参阅开发帮助,FeatureClass,属性,返回要素图层使用的要素类,IFeatureLayer,接口的主要属性和方法简介,Search,方法,可以根据查询条件对要素图层进行查询,返回一个,IFeatureCursor,对象。,用法:,Set,variable,=,object,.Search,(,queryFilter,recycling,),其中:,queryFilter,:,是一个过滤器,为一个,IQueryFilte,类型的对象,recycling,:,是个布尔值,用于说明返回的要素游标是否循环,通过,Search,方法查询出满足条件的要素并进行闪烁显示,string sqlfilter;,IFeatureLayer pFeatLyr;,/,得到要进行查询的图层,pFeatLyr=(IFeatureLayer)axMapControl1.,get_Layer,(2);,/,定义一个过滤器对象,IQueryFilter pFilter;,pFilter=new QueryFilterClass();,/,设置查询条件,sqlfilter=POP_CNTRY200000000;,pFilter.,WhereClause,=sqlfilter;,IFeatureCursor pFeatCorsor;,pFeatCorsor=pFeatLyr.Search(pFilter,true);,IFeature pFeat;,pFeat=pFeatCorsor.,NextFeature,();,while(pFeat!=null),/,使用,FlashShape,方法使要素闪烁,axMapControl1.,FlashShape,(pFeat.Shape);,/,通过,DrawShape,方法在地图控件上画出要素,axMapControl1.,DrawShape,(pFeat.Shape);,pFeat=pFeatCorsor.,NextFeature,();,IGeoFeatureLayer,接口的主要属性和方法简介,IGeoFeatureLayer,接口负责要素的显示属性,例如要素的着色和标注等功能,SearchDisplayFeatures,方法,使用这个方法只显示符合查询要求的要素,其它的要素都会消失掉,如果一个要素图层与其它图层或属性表有任何形式的关联关系,则可以使用这个方法,IGeoFeatureLayer,接口的主要属性和方法简介,Renderer,属性,用于用户设置图层的着色对象,制作专题图。,DisplayAnnotation,属性,可以设置要素图层是否出现标注。当这个属性值为,True,时,用户可以在这个要素图层上依据要素类的某个字段进行标注。,IGeoDataset,接口的主要属性和方法简介,IGeoDataset,接口仅有两个属性,它们用于管理地理要素集。一个要素图层的地理数据放在要素类中,而要素类本身是一个数据集对象。,Extent,属性,可以返回当前数据集的范围,是一个,IEnvelope,类型的对象,SpatialReference,属性,可以让用户获得这个数据集的空间参考,IFeatureSelection,接口的主要属性和方法简介,IFeatureSelection,接口负责管理一个图层中的要素选择集的方法和属性。,Add,方法,可以把本图层上的一个要素添加到图层的选择集中,SelectFeatures,方法,可以使用一个过滤器把符合要求的要素放入图层的选择集中,Clear,方法,可以用于清除图层所有的要素选择集,通过,SelectFeatures,方法把满足条件的要素放入图层的选择集中,string sqlfilter;,IFeatureLayer pFeatLyr;,IFeatureSelection pFeatureSelection;,/,得到要进行查询的图层,pFeatLyr=(IFeatureLayer)axMapControl1.,get_Layer,(2);,pFeatureSelection=pFeatLyr as IFeatureSelection;,/,定义一个过滤器对象,IQueryFilter pFilter;,pFilter=new QueryFilterClass();,/,设置查询条件,sqlfilter=POP_CNTRY200000000;,pFilter.,WhereClause,=,sqlfilter,;,pFeatureSelection.,SelectFeatures,(pFilter,esriSelectionResultEnum.esriSelectionResultAdd,false);,/,地图控件局部刷新,axMapControl1.,Refresh,(esriViewDrawPhase.esriViewGeoSelection,null,null);,IFeatureLayerDefinition,接口的主要属性和方法简介,CreateSelectionLayer,方法,可以将一个要素图层选择集中的要素转换为一个单独的要素图层,用法:,Set,variable,=,object,.CreateSelectionLayer,(,LayerName,useCurrentSelection,joinTableNames,Expression,),其中:,LayerName,:定义了新图层的名称,useCurrentSelection,:布尔值,表示是否希望使用当前图层的要,素选择集,joinTableNames,:是一个可能与当前图层关联的表的名称,Expression,:可以用于设置一个选择过滤,将要素选择集中符合,条件的要素放入新的图层,ILayerFields,接口的主要属性和方法简介,通过,ILayerFields,接口可以获得要素图层的字段情况,尽管要素图层的数据是保存在要素类中,获得要素类的字段需要从要素类着手,但是,ArcGIS,Engine,提供了,ILayerFields,接口,可以直接获取一个要素图层的要素类字段结构。,IIdentify,接口的主要属性和方法简介,IIdentify,接口定义了获得要素图层单个要素的属性的捷径方法。,Identify,方法,获取指定位置处要素的属性信息,返回一个,IArray,数组。,用法:,Set,variable,=,object,.Identify,(,pGeom,),其中:,pGeom,:,表示一个,IGeometry,类型的对象,通过,Identify,方法实现“点图查询”功能,IIdentify pIdentify;,IPoint pPoint;,IArray pArray;,IFeatureIdentifyObj pFeatIdObj;,IIdentifyObj pIdObj;,pIdentify=(IIdentify)axMapControl1.,get_Layer,(2);,pPoint=axMapControl1.,ToMapPoint,(e.x,e.y);,pArray=pIdentify.,Identify,(pPoint);,if(pArray!=null),/,获得,FeatureIdentifyObj,对象,pFeatIdObj=(IFeatureIdentifyObj)pArray.,get_Element,(0);,pIdObj=pFeatIdObj as IIdentifyObj;,/,将被选择的要素闪烁,pIdObj.,Flash,(axMapControl1.ActiveView.ScreenDisplay);,listBox1.Items.Add(pIdObj.Name);,else,MessageBox.Show(,没有要素被点击,);,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


地图的组成及相关对象.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14188846.html