使用IMap接口顯示各種資料源的資料。
IMap接口的成員
ActiveGraphicsLayer:活動圖形圖層,如果沒有将建立一個基本memory graphics layer。
AddLayer:向地圖中添加單個圖層。
AddLayers:向地圖中添加多個圖層。
AddMapSurround:向地圖中添加map surround。
AnnotationEngine:地圖使用的注記(标簽)引擎。
AreaOfInterest:地圖的感興趣區域。
Barriers:barriers清單和标簽權重。
BasicGraphicsLayer:基本圖形層。
ClearLayers:從地圖中移除所有圖層。
ClearMapSurrounds:從地圖中移除所有旁注。
ClearSelection:清除地圖選擇。
ClipBorder:ClipGeometry周圍一個可選邊界。
ClipGeometry:地圖圖層中一個要剪切的形狀。
ComputeDistance:計算地圖上兩個點的距離并傳回結果。
CreateMapSurround:建立并初始化一個map surround。從樣式集中指定一個可選樣式。
DelayDrawing:暫停繪制。
DelayEvents:将操作按批組合來減少通知。
DeletLayer:從map中删除圖層。
DeleteMapSurround:從地圖中删除map surround。
Description:地圖描述。
DistanceUnits:地圖的距離機關。
Expanded:指出地圖是否可以擴張。
FeatureSelection:地圖中選擇的要素。
GetPageSize:獲得地圖的頁面大小。
IsFramed:指出地圖是否在一個架構内而不是在整個視窗中繪制。
Layer:給定序号的layer。
LayerCount:地圖中圖層的數目。
Layers:以uid表明類型的地圖圖層。如果recursive是true,将以layers的形式傳回layers。
MapScale:數字形式的地圖比例尺。
MapSurroundCount:與地圖相關的旁注數量。
MapUnits:地圖機關。
MoveLayer:将一個圖層移到其他位置。
Name:地圖名稱。
RecalcFullExtent:重新計算全幅範圍。
ReferenceScale:分數形式的地圖參考比例尺。
SelectByShape:用一個幾何形狀和選擇環境(可選)在地圖中選擇要素。
SelectFeature:選擇一個要素。
SelectionCount:選擇的要素的數目。
SetPageSize:設定地圖(可選)的頁面大小。
SpatialReference:地圖的空間參考。
SpatialReferenceLocked:指出是否允許改變空間參考。
UseSymbolLevels:指出是否使用symbol levels繪制地圖。
AnnotationEngine:map使用的annotion(label)引擎。
AreaOfInterest:地圖的感興趣區域。
類Map實作接口IMap。
每個地圖檔案包含至少一個Map對象。但每次隻有一個Map能夠獲得焦點,這個Map稱作focus map(焦點地圖)。使用IMxDocument可以通路可以通路文檔中的所有地圖對象;IMxDocument::FocusMap傳回目前具有焦點的地圖引用。IMxDocument:Maps傳回指向所有地圖對象的引用(IMaps)。一個地圖文檔可以包含任意數目的Map對象--資料視圖中隻顯示焦點地圖。
地圖對象,管理一系列圖層對象。每個圖層有一個空間參考。一個空間參考定義一個分辨率(1/精度)和一個坐标系統。地圖坐标系統自動設定為第一個圖層的坐标系統,根據所有的圖層範圍計算分辨率。
幾種常用屬性和方法:
IMap.AddLayer Method(向map中添加layer)
[Visual Basic.NET] Public Sub AddLayer(ByVal Layer as ILayer)
[C#] public void AddLayer(Ilayer Layer)
AddLayer方法向地圖中添加圖層。使用LayerCount屬性獲得地圖中圖層的總數。如果map沒有設定坐标系統,AddLayer自動設定地圖的SpatialReference屬性。當地圖的空間參考屬性設定後,地圖的MapUnits和DistanceUnits屬性也就設定了。AddLayer同時也設定layer的空間參考。
IMap.DeleteLayer Method(從Map中删除圖層)
[Visual Basic.NET] Public Sub DeleteLayer(ByVal Layer as ILayer)
[C#] public void DeleteLayer(ILayer Layer)
如果一個圖層在TOC視窗中被選中(IMxDocument::SelectedLayer),可以将其傳遞到DeleteLayer方法中。當删除一個引用要素類的圖層時,如FeatureLayer,執行IDataLayer2::Disconnect能清楚對要素類的引用。
IMap.FeatureSelection Property(IMap.FeatureSelection屬性)
[Visual Basic.NET] Public Property FeatureSelection as Iselection
[C#] public ISelection FeatureSelection{get;set;}
ArcMap有兩個不同的選擇集,feature selection和element selection。兩種不同的對象表示了這些選擇并且都實作了ISelection接口。feature selection對象還實作了IEnumFeature接口,element selection還實作了IEnumElement。ISelection接口用于clipboard類型的操作,IEnum接口針對集合中的項目。
當你從IMap中通路FeatureSelection時,傳回一個ISelection。當你通過IActiveView::Selection選擇時,既可以是元素選擇,也可以是要素選擇,取決于哪一個處于活動狀态--一次隻能有一個處于活動狀态。使用要素選擇確定引用到正确的選擇。
IEnumFeature在所有要素圖層上工作。每個FeatureLayer有一個ISelectionSet和IEnumFeature。IEnumFeature工作在所有FeatureLayer上,不能用它周遊某一個圖層的要素。
注意,隻有shape字段能確定用于選擇。IMap::FeatureSelection屬性用于繪制地圖選擇,而不是通路要素屬性。在shapefiles、coverage和geodatabases中要注意。如果想周遊地圖選擇執行一個操作,最好通路每個圖層的選擇集而不是整個地圖的。
IMap.Layer Property(IMap.Layer屬性)
[Visual Basic.NET] Public Function get_Layer(ByVal Index As Integer) As ILayer
[C#] Public ILayer get_Layer(int Index);
Maps是由各種資料源中的無數圖層組成。使用Layer屬性來通路地圖的特定圖層。圖層集從0開始。使用Layer屬性和LayerCount屬性在地圖中周遊各個圖層。
Layer屬性傳回一個ILayer引用。常用if(player is IFeatureLayer)進行判斷。例如,不要認為地圖中的所有圖層都是FeatureLayers。實作ILayer和IDataLayer接口的圖層是有效圖層。
每個地圖也有一個basic graphics layer,但并不包含在這個屬性傳回的圖層集中。通過BasicGraphicsLayer屬性可以獲得對這個圖層的引用。
IMap.SelectByShape Method
通過幾何圖形和選擇環境(可選)選擇要素
[Visual Basic.NET] Public Sub SelectByShape(ByVal Shape As IGeometry,ByVal env As ISelectionEnviroment,Byval justOne as Boolean)
[C#] public void SelectByShape(IGeometry Shape,ISelectionEnvironment env,bool justOne);
SelectByShape在所有IFeatureLayer中搜尋與輸入圖形相交的要素,隻有IFeatureLayer::Selectable屬性設為TRUE時才可搜尋該圖層。
ISelectionEnvironment決定選擇結果。例如,建立一個新的選擇或向已存在的選擇集中添加要素。通過IMxApplication::SelectionEnviroment使用應用程式的選擇環境。
justOne變量控制找到一個要素後是否停止搜尋。
搜尋完成後調用IActiveViewEvents::SelectionChanged通知選擇已改變。
(轉自http://www.cnblogs.com/qiernonstop/archive/2013/05/05/3061560.html)