1. 程式人生 > >AE | 地圖及相關物件

AE | 地圖及相關物件

目錄

 

地圖物件

IMAP

IActiveView

IActiveViewEvents

IGraphicsContainer

IMapBookmark

ITableCollection

地圖物件的獲取

圖層物件

ILAYER

IFeatureLayer2

IGeoFeaturelayer

IGeoDataset

IFeatureSelection

ScreenDisplay物件


地圖物件

地圖物件上能顯示的圖形有兩類:資料地理元素狀語從句:
主要資料介面:

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用於畫點,線,面,長方形和文字