目录
地图对象
地图对象上能显示的图形有两类:数据地理元素状语从句:
主要数据接口:
IMAP
数据的管理,很多地图处理工作的起始点,可以用于添加,删除,打开图层,包括要素图层和图形图层,得到感兴趣区域的地图的不同属性
selectfeature-选择要素
特征选择- 特征选择地图
IActiveView
数据的显示功能,主要的应用窗口和所有的绘制操作
包括两种不同的视图:图层视图和数据视图
IMxDocument :: ActiveView
拥有当前活动视图对象的一个指针
.1,如果处于布局视图状态,那么IMxDocument :: ActiveView返回的IActiveView对象是指向PageLayout对象的;
2,如果处于在数据视图状态,那么这个属性就会返回一个当前使用的地图对象的指针
.IrctiveView :: PartialRefresh
可以让视图对象使用不同的方式来局部(单个图层,所有图层,选择要素,文本,图形元素等)刷新以重绘地图。
IActiveViewEvents
事件的接口,监听与活动视图(ActiveView)相关的事件并做出相应的响应
IGraphicsContainer
负责地图元素的操作
AddElement方法用于将一个元素放入Map对象中
DeleteElement方法用于删除Map对象中的一个给定的元素。
UpdateElement用于更新图形元素。
LocateElementsByEnvelope方法,它和SelectByShape方法类同,是使用鼠标拖曳一个矩形区域,从而选择到这个区域内所有的元素。
IMapBookmark
负责管理地图书签对象
ITableCollection
管理属性表
地图对象的获取
1,通过MapDocument获得Map对象
IMapDocument pMapDocument = new MapDocumentClass pMapDocument.Open(path,null);
IMap pMap = pMapDocument.get_Map(i);
2,通过MxDocument获得Map对象
m_application = hook作为IApplication;
IDocument document = m_application.Document;
IMxDocument mapDocument = document as IMxDocument;
IMap map = mapDocument .FocusMap;
3,通过MapControl获得Map对象
IMap pMap = axMapControl1.Map;
IActiveView pActiveView = pMap as IActiveView;
或pActiveView = axMapControl1.ActiveView;
4,通过PageLayoutControl获得Map对象
IActiveView pActiveView = axPageLayoutControl1.PageLayout作为IActiveView;
或者pActiveView = axPageLayoutControl1.ActiveView;
pMap = pActiveView.FocusMap;
5,在命令,工具类中获得Map对象
IHookHelper m_hookHelper = null;
IMap m_Map;
IActiveView m_ActiveView;
public override void OnCreate(object hook)
{if(hook == null)return;
m_hookHelper = new HookHelperClass();
m_hookHelper.Hook = hook;
m_Map = m_hookHelper.FocusMap;
m_ActiveView = m_hookHelper.ActiveView;
}
图层对象
图层对象本身不包含数据,仅仅是为了获得数据的引用,是用于管理数据源的连接;还保存着符号化信息
ILayer
所有图层类都实现了的一般接口,它定义了所有图层的公共方法和属性。
IFeatureLayer2
要素数据是GIS中最常使用的数据类型之一,它可以用于表示离散矢量对象的信息,该接口用于管理要素图层的数据源,即要素类(Featureclass)。
DataSourceType属性返回要素图层的数据源的类型。
IGeoFeaturelayer
继承了ILayer和IFeatureLayer两个接口,用于控制要素图层中与地理相关的内容,例如要素的着色和标注等功能。
Renderer属性用于设置图层的着色对象;
DisplayAnnotation属性可以设置要素图层是否出现标注,当它为true的时候,用户可以在这个要素图层上依据要素类的某个字段进行标注。
IGeoDataset
仅有两个属性,用于管理地理要素集的范围和空间参考。所有的图层和数据集实现了该接口。
Extent可以返回当前数据集的范围,是一个IEnvelope类型的对象;
SpatialReference属性则可以让用户获得这个数据集的空间参考。
IFeatureSelection
管理一个图层中的要素的选择集的方法和属性。
Add方法可以把本图层上的一个要素添加到图层的选择集中;
SelectFeatures方法则可以使用一个过滤器把符合要求的要素放入图层的选择集中;
Clear方法用于清除图层要素选择集。
在要素图层中SelectFeatures (IFeatureSelection)和Search(IFeatureLayer)要素的区别:
要素图层的Search方法返回的是ICursor对象,它仅仅是一个指向要素的指针;
使用IFeatureSelection::SelectFeatures方法,则符合要求的要素会被标记为“被选择的要素集”,这个选择集是一个ISelectionSet对象,可以用SelectionSet属性返回,如:
IFeatureSelection pSel = pFeatureLayer as IFeatureSelection;
ISelectionSet pSelectionSet = pSel.SelectionSet;
ScreenDisplay对象
ScreenDisplay是与一个窗体相联系的显示设备,除了管理窗体屏幕的显示属性外,还管理发生在显示背后的对象和行为,如缓存和屏幕变化等。
对于地图或页面布局对象,可以通过IActiveView: :ScreenDisplay属性获得ScreenDisplay对象
.IActiveView pActiveView = axMapControl1.ActiveView;
IScreenDisplay screenDisplay = pActiveView.ScreenDisplay;
IDisplay用于画点,线,面,长方形和文本