ArcObjects SDK開發 008 從mxd地圖檔案說起

2022-11-30 15:00:55

1、Mxd檔案介紹

ArcGIS的地圖檔案為.mxd擴充套件名。Mxd檔案的是有版本的,和ArcGIS的版本對應。可以在ArcMap中的File-Save A Copy,儲存一個地圖拷貝的時候選擇Mxd檔案的版本,支援的版本如下圖所示。

image1.png

因為我是用ArcMap 10.8截的圖,所以這還需要再加一個ArcMap 10.8 Document。一個地圖檔案包含一個佈局物件,一個多或者地圖物件以及其他一些附屬資訊。地圖檔案不直接儲存例如.shp、.tif等實際資料,只是儲存一些圖層資訊以及圖層對這些資料的參照。

高版本的ArcMap可以開啟同版本和低版本的地圖檔案。

2、使用ArcMap開啟mxd檔案

下圖是ArcMap自帶的一個典型的mxd檔案開啟的效果。如下圖所示。

image2.png

當前模式為佈局模式,即啟用的是PageLayout,一共包含了三個地圖,其中啟用的地圖為第一個Conterminous United States。

切換到資料模式,ArcMap顯示的是當前啟用的地圖,如下圖所示。

image3.png

從ArcMap展示上,我們可以看出,一個地圖檔案,包含了一個佈局物件,即PageLayout。包含了多個地圖物件,即Map。每個Map都可以作為一個元素在PageLayout上顯示,並可以設定自己的顯示比例尺,不必統一。針對每個地圖,可以新增其關聯的比例尺,圖例、指北針、網格等智慧元素。也可以在佈局檢視上新增點、線、面以及文字等元素。

ArcMap中,佈局和資料檢視,同一時刻只能啟用一個。而且當資料檢視被啟用的時候,顯示的地圖為佈局檢視中的活動地圖。

每個Map都包含了多個圖層, 可以為這些圖層設定渲染、標註等資訊,但並不儲存資料本身。我們可以在Map上新增點、線、面以及文字等非資料元素。

3、使用ArcObject SDK開啟mxd檔案

在ArcObjects SDK中,我們一般使用IMapDocument介面開啟mxd檔案。在幫助中,檢視到的IMapDocument的結構如下圖所示。

image4.png

有幾個比較重要的屬性。

ActiveView,當佈局檢視啟用的時候,該屬性返回的是IPageLayout,當資料檢視啟用的時候,返回的是佈局檢視下活動的地圖,即IMap。

MapCount表示當前地圖檔案有幾個地圖,通過Map[Index]可以獲取指定的地圖物件。

PageLayout即地圖檔案包含的佈局物件,返回型別為IPageLayout。

IMap和IPageLayout的實現類都繼承了IActiveView,即實際開發的時候,IMap和IPageLayout介面型別的變數都可以轉換成IActiveView介面。

IMapDocument、IActiveView、IMap和IPageLayout介面之間的關係可與用下圖表示。

image5.gif