ArcObjects SDK開發 009 Map-Layer的結構

1、Map-Layer主幹結構

一個mxd文件可以包含多個地圖,但我們常用的大部分都是包含一個地圖。一個地圖可以包含多個圖層組和圖層,而圖層指向的則是實際數據。圖層可以控制數據是否顯示、顯示樣式、最大最小顯示比例尺等。Map可以設置自己的空間參考,在渲染的時候,各圖層會投影到地圖的空間參考下顯示。

我們可以通過打開mxd獲取map,從而獲取圖層對象。也可以通過ArcObjects SDK打開各類數據源,實例化圖層。圖層也可以單獨保存成lyr文件,和mxd文件一樣,只是保存了圖層信息,並不保存圖層指向的數據。

Map-Layer這個部分我認爲是ArcObjects SDK中最核心、最重要的部分。我們在開發的時候,經常就是圍繞這塊的內容展開。從Map-Layer這兩個點可以引出一大批重要的接口,例如IFeatureClass、IFeatureSelection、IFeatureCursor、IField、IFeature、IFeatureRenderer、IRaster、IRasterRenderer等,這些都是非常重要且使用頻率非常高的接口。Map-Layer引申出來的關係網如下圖所示。

 

截圖.png

2、Map

對於Map的話,我們需要了解以下內容。

1、一個mxd文件是可以包含多個地圖文件的,但只能有一個處於激活狀態,也就是在MapControl控件中,只能顯示一個Map。

2、Map中包含的圖層的空間參考可以各種各樣,Map也可以設置自己的空間參考,顯示的時候,會把圖層的轉換到Map的空間參考上顯示。

3、 如果地圖是地理空間參考的話,ArcGIS會默認以Plate_Carree投影顯示。

打開ArcGIS自帶的地圖USA.mxd文件,如下圖所示。

image2.png

從圖層樹以及佈局模式下的MapFrame可以看出,當前一共有三個地圖,Conterminous United States、Hawaii和Alaska,分別對應佈局模式下的三個MapFrame,每個MapFrame都有自己的顯示比例以及比例尺元素。

有時候我們在做中國地圖的時候,爲了省事,南海那部分就用一張圖片代替,放到地圖的右小角。但把南海部分也做成一個Map,使用兩個MapFarme是最規範的做法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章