Carto类库.doc_第1页
Carto类库.doc_第2页
Carto类库.doc_第3页
Carto类库.doc_第4页
Carto类库.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Carto类库支持地图的创建和显示。ArcMap以两种不同的方式显示地图:数据视图和页面视图。数据视图从给定的视图显示数据,页面视图显示许多地图和其他东西。 可以使用Map对象在数据视图中存取地图及其包含的数据,使用PageLayout对象管理页面视图的地图和其他附属。虽然开发者在其应用程序中可以直接使用Map或PageLayout对象,但开发者更经常用高层次的对象如MapControl,PageLayoutControl或ArcGIS桌面应用程序。使用更高级的对象可以简化任务。 PageLayout对象是一个容器,可以容纳一幅或多幅地图以及相关旁注(指北针,图例,比例条等)。Map对象是图层的容器。Map对象的属性涉及所有图层,如空间参考,地图比例等,也有操作地图图层的方法。 多种不同类型的图层可以添加到地图中。不同数据源对应特定图层显示数据;矢量要素由FeatureLayer对象处理,栅格数据由RasterLayer处理,TIN数据由Tinlayer处理等。图层可以处理关联数据的所有显示操作,通常图层都有一个Renderer对象,Renderer对象的属性控制地图中数据的显示方式。Renderers通常使用Display类库中的符号来绘图:renderer仅仅是将实体的属性与特定符号相关联。 Map对象和PageLayout对象并不是Carto类库仅有的对象,MxdServer对象和MapServer对象也支持地图和页面的渲染,但这些对象是将渲染的结果输出到文件中,而不是渲染到窗口中。 使用MapDocument对象,开发者可以将Map和PageLayout的状态保存到地图文件(.MXD)中,该地图文件可用于ArcMap或ArcGIS控件中。 Map和PageLayout可以包含elements。一个element有一个几何图形来定义它在map或page上的位置,有行为控制element的显示。有基本图形、文字标签、复杂旁注等要素。Carto类库也支持地图注记和动态标签。 常常扩展Carto类库,如自定义renders、layers等。一个自定义的图层通常是向制图程序中添加自定义数据的最简单方法。 这个类库分为以下一些子系统:Map and page layout、Map element、Map surround、Map grids、Renderers、Labeling、Annotation、Dimensions、Layers、Dynamic Maps、Dynamic Layers、MapServer、ArcIMS layer,symbols,and renderers、GPS support。 Map and page layout Map组件类 Map对象是地图数据的容器。用来管理要素图层和图表数据。Map对象是自定义任务中的首选对象,因为它既管理数据图层,又是一个视图,用来管理数据的绘制。Map对象的典型任务包括添加一个新图层、漫游显示、改变视图范围(缩放功能)、改变空间参考、获得当前选中的要素和元素。 可以创建Map对象并将其添加到文件中。实例化一个Map对象将自动创建它所依赖的下列相关对象:ScreenDisplay对象,每个视图都使用它来管理绘图窗口,和一个新的CompositeGraphicsLayer。 IMap接口 IMap接口是许多涉及map的任务的起点。例如,可以使用IMap添加、删除、存取包含各种数据源数据的图层,包括要素图层和图形图层;将map surround对象(如图例、比例条等)与地图关联;存取地图的属性,包括感兴趣区域,地图单位和空间参考;选择要素和访问地图对象的当前选择。 The focus map 每个地图文档包含至少一个Map对象。但一次只能有一个Map有焦点。这个Map称作focus map。通过IMxDocument可以访问文档中所有地图对象,IMxDocument:FocusMap返回当前具有焦点的地图的引用,IMxDocument:Maps返回所有地图对象。一个地图文档可以包含任意个Map对象,focus Map显示数据视图。 访问地图图层 地图对象管理图层集合。图层类型包括FeatureLayer、FDOGraphicsLayer和GroupLayer。 每个图层有一个空间参考。一个空间参考定义一个精度和坐标系统。地图的坐标系统根据添加的第一个图层自动设定,在所有图层范围基础上计算精度。 Selecting in the map 从Map对象中可以得到选择的要素:Map对象包含选择要素的方法。 Drawing on the Maps graphics layers Map管理CompositeGraphicsLayer对象,包含若干graphics对象。 basic graphics图层是Map的默认graphics图层,默认情况下,所有graphics在上面绘制。通过IMap:BasicGraphicLayerMap可直接访问这个图层。 也可以通过IGraphicContainer接口访问Map的active graphics layer,返回一个对其的引用。 Map的basic graphics layer既是一个用于绘制的graphics layer,又是一个composite graphics layer。不能从CompositeGraphicsLayer对象中删除的图的basic graphics layer。通过ICompositeGraphicsLayer获得一个basic graphics layer的引用来管理其所包含的图层。这样,就可以从map中添加或删除graphics layers。 IMap:Layers属性返回的图层集并不包含Map的CompositeGraphicsLayer管理的的graphics。想要访问它们,可以使用IMap:ActiveGraphicsLayer属性。这个属性返回当前正在绘制的graphics layer的引用。既可以是基本的graphics layer,也可以是Map的CompositeGraphicsLayer的一个图层,或是例如FDOGraphicsLayer的feature layer。 这个例子向map中添加一个新的graphics layer。运行这个程序,dataframe属性上的Annotation groups选项卡上多了一个新的group,也就是一个新的graphics layer。在这个新图层上绘图,要使它为活动graphics layer。设置map的ActiveGraphicsLayer属性可实现。在ArcMapDrawing菜单的active annotation子菜单上查看哪个图层是活动图层。 在下面的example中,使用IMap和IGraphicsContainer等接口向active graphics layer添加text元素。 basic graphics layer是一个特殊的图层,既不能删除,也不包括在CompositeGraphicsLayer的图层数目上。而且这个图层的是所有CompositeGraphicsLayer图层的元素数目。如果你删除了Map的basic graphics layer的所有要素,你就删除了CompositeGraphicsLayer中的所有annotation groups。如果Map的CompositeGraphicsLayer有多个图层,使用IMap:ActiveGraphicsLayer来设置或获得active layer的引用。 active graphics layer并不总是引用Map的CompositeGraphicsLayer的图层,例如包含元素的数据库图层被设置为active graphics layer。feature-linked annotation图层(FDOGraphicsLaye)就是一个很好的例子。 Map的IGraphicsContainers返回一个地图active graphics layer的引用。既可以是basic graphics layer、CompositeGraphicsLayer中的layer,或是feature layer,例如FDOGraphicsLayer。 Map frames and surround 在ArcMap中,MapFrame对象中包含Map对象。PageLayout对象管理MapFrame对象,每个MapFrame管理一个Map。方便起见,MxDocument对象将一个引用传递到focus map和Map的集合。事实上,PageLayout对象管理这些。 MapSurround对象是与Map对象相关联的元素。map surround的类型包括图例、指北针、比例条等。地图对象有数个访问与其关联的map surrounds的属性和方法。所有map surrounds包含在MapSurroundFrame中,如同MapFrame一般,最后由PageLayout对象管理。 IBasicMap IBasicMap是IMap的一个亚集,提供对ArcScene和ArcGlobe的支持。Map(2D)、Scene(3D)和Globe(3D)组件类实现这个接口。ArcMap、ArcScene和ArcGlobe使用的组件利用的是IBasicMap而不是IMap。 The active view IActiveView接口控制着应用程序主窗口,包括所有绘图操作。使用这个接口可以改变视图范围、访问关联的ScreenDisplay对象,显示或隐藏rulers和scroll bars,以及刷新视图。 Active view events IActiveViewEvents接口是Map对象的默认外向接口。利用它客户端可以监听和回应与active view有关的特定事件,例如AfterDraw和SelectionChanged。 很多组件类实现这个接口,但引发的事件却不相同。Map对象对IActiveView的实现不同于PageLayout对象。例如,Map对象不引发FocusMap Changed事件,PageLayout却引发。同样,从Map里移除layer时Map对象会引发Deleted事件,同样移除元素时,如删除map frame或graphic时,PageLayout对象会引发相同的事件。IViewMagager:VerboseEvents设置为True才能调用AfterViewDraw事件。 IViewManager IViewManager是定义active view行为的一个低层次接口。 IViewManager接口管理的一个常见属性是VerboseEvents。默认情况下,VerboseEvents设置为False,不会引发IActiveViewEvents:AfterItemDraw。设置VerboseEvents为True,才能接听这个事件。 Barriers labeling engines使用Barriers,标示应将label放置于特定区域。目前barriers包括注记、图形要素以及渲染器产生的符号。例如,一个要素图层使用饼状图渲染器,但并不想让标签直接出现在饼状符号之上。这种情况下,饼状图作为barriers通知label engine不要将标签放在上面。 IMapBarriers接口返回Map中所有图层的barriers和权重。具有barriers的图层包括实现IBarrierProperties的如下图-CompositeGraphicsLayer、CoverageAnnotionLayer和FDOGraphicsLayer。当创建一个标签引擎时,使用这个接口可以方便的访问所有图层的barriers。 Spatial bookmarks 所有的空间书签由Map对象管理,并保存在Map对象内。书签用name来区分,保存了地图的范围,可以方便的访问map上的特定位置。在ArcMap中,可以从View菜单中的Bookmarks访问。 map的书签由IMapBookmarks接口管理。使用IMapBookmarks可以访问已存在的书签、添加书签或删除书签。通过书签,可得到等大的地图范围。在ArcMap中有两种类型的书签:兴趣区域书签和要素书签。兴趣区域书签存储地图范围的信息,通过要素书签可以查找地图中的某个特定要素。 Map events IMapEvents接口暴露于Map对象,使得客户端能够倾听并回应map内的两个事件:FeatureClassChanged和VersionChange

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论