ArcEngine IMap介面的用法

2021-06-21 15:29:18 字數 4210 閱讀 9602

使用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:數字形式的地圖比例尺。

mapunits:地圖單位。

movelayer:將乙個圖層移到其他位置。

name:地圖名稱。

recalcfullextent:重新計算全幅範圍。

selectbyshape:用乙個幾何形狀和選擇環境(可選)在地圖中選擇要素。

selectfeature:選擇乙個要素。

selectioncount:選擇的要素的數目。

setpagesize:設定地圖(可選)的頁面大小。

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

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時才可搜尋該圖層。

justone變數控制找到乙個要素後是否停止搜尋。

搜尋完成後呼叫iactiveviewevents::selectionchanged通知選擇已改變。

**自

List介面 Set介面和Map介面

1 list和set介面自collection介面,而map不是繼承的collection介面 collection表示一組物件,這些物件也稱為collection的元素 一些 collection允許有重複的元素,而另一些則不允許 一些collection是有序的,而另一些則是無序的 jdk中不提...

介面 四 訪問介面

對介面成員的訪問 對介面方法的呼叫和採用索引指示器訪問的規則與類中的情況也是相同的。如果底層成員的命名與繼承而來的高層成員一致,那麼底層成員將覆蓋同名的高層成員。但由於介面支援多繼承,在多繼承中,如果兩個父介面含有同名的成員,這就產生了二義性 這也正是c 中取消了類的多繼承機制的原因之一 這時需要進...

C 介面 介面作用

可簡單的這樣理解介面 介面是方法的抽象,如果不同的類有同樣的方法,那麼就應該考慮使用介面。例如,人和車都有 跑 的方法,那麼就可以定義乙個介面irun 注意,定義介面時,裡面的方法不能有方法體 應該在類裡再去實現 而具介面的成員全是公有的,不應有修飾符 public inte ce irun 人實現...