AE開發編輯功能

2021-04-13 00:41:09 字數 2335 閱讀 7385

這個兄弟寫得太好了!!!!!!

資料編輯問題

在ae中資料的編輯是乙個重點,也是乙個難點。它包括的東西非常多,如:地物的新增,地物的修改,地物查詢,節點捕捉,地物的符號化等一系列的問題。熟練的使用地物編輯的功能,是開發乙個系統必須具備的條件。資料編輯問題解決得好壞直接決定著軟體是否操作方便。在這我只是寫一些相應的功能函式,至於軟體開發中的架構,我不考慮。

1、新增地物

什麼是地物,這是gis的基本概念,我在這不想多說,我只想說明一點,地物可以表現在地圖上,如房子、鐵路、水管等等。我們把房子的總稱稱為乙個地物類,在ae中對應乙個地物類(ifeatureclass),乙個地物類在地圖上表示為乙個地物層(ifeaturelayer),單獨的一棟房子或一條管道我們稱為地物(ifeature),arcgis中一類地物只能放在乙個層,通過圖層的疊加組成一幅地圖。

熟悉物件導向的程式語言的人都知道,其實上邊的地物類,地物的概念就是類和實體的概念。房子、鐵路、水管等是一類地物的抽象,而具體的某一房子就是物件了。大家了解了這一點。接下來的開發就容易理解一些了。當然,還有一些其他的概念也必須了解一下:如長事務、短事務、編輯空間等。請大家查詢一些相關資料,了解這方面的內容。

一、新增點

我們可以有多種方法新增點,但基本的思路一樣,只是有少量的介面有變化。下邊是通過featrueclass的createfeature()函式新增地物。

public void addpointbystore()

//結束編輯

w.stopeditoperation();

//結束事務操作

w.stopediting(true);

} 上邊的**能新增點地物,但不能作為最終的**使用,細心的人會看到。這段**只是把第一層加進來,然後在第一層上邊新增點地物,如果第一層不是點層,該怎麼辦,那就要判斷了。怎麼判斷我們以後再說。通過上邊的**,我們已經清楚地了解到,編輯地物的基本框架,這也是我們所說的事務,如果想操作能返回和重做,就必須把**寫在iworkspaceedit的startediting()和stopediting()函式之間,把相關的操作寫在iworkspaceedit的starteditoperation()和stopeditoperation()之間。並且操作是利用iworkspaceedit介面完成的,所以要仔細理會iworkspaceedit介面的用處,如何工作空間都可以轉化為iworkspaceedit的物件,當轉化為iworkspaceedit定義的物件後,我們定義乙個ifeature的物件,然後利用ifeatureclass的createfeature()函式建立乙個地物,並賦值給定義的ifeature物件。接著設定ifeature物件的一些屬性,如:座標值,座標系,地物型別等,最後是呼叫ifeature物件的store()儲存新增的地物。

上邊的方法可以新增點地物,接著看看下邊的**。看有什麼不同:

public void addpointbywrite()

w.stopeditoperation();

w.stopediting(true);

} **中用紅色標記的兩行就是不同的**,其實他就是儲存方式的不同而已。在這利用了ifeatureclasswrite 介面來儲存資料。再看看下邊的**:

public void addpointbybuffer()

w.stopeditoperation();

w.stopediting(true); }

其實不同的地方就兩句**,紅色表示的。在這沒有再定義地物介面了(ifeature),而是使用ifeaturebuffer 介面,儲存的時候是使用insertfeature()儲存,這對大資料量處理的非常有好處。他是先把要新增的儲存到緩衝區裡。最後一次性儲存。

二、新增線

新增線的方法跟新增點一樣,不同的只是地物型別不一樣而已,我把**貼出來,大家跟新增點的方式進行對比。這樣便於記憶。也有利於理解。

public void addlinebywrite()

f.shape = plyline;

fr.writefeature (f);

} w.stopeditoperation();

w.stopediting(true);

至於新增線的其他兩種方法,通過修改新增點的**,就可以得到。可以自己想想然後測試,這樣便於記憶和理解。

三、新增面

在沒人跟帖就不寫了.

AE指令碼編輯

這裡為大家推薦一款mac系統的ae使用者設計的指令碼編輯器,mocode for mac這款外掛程式能夠輔助大家在ae上編輯各類ae表示式和指令碼,不再需要在借助其它的指令碼編輯器進行編輯。這款外掛程式為初學者和專家帶來了乙個完整的開發環境和乙個工具欄。它不僅是 編輯器,還是一種全新的方式,可以快速...

AE開發實現GP工具IDW

idw 空間插值 idw inverse distance weighted 是一種常用而簡便的空間插值方法,它以插值點與樣本點間的距離為權重進行加權平均,離插值點越近的樣本點賦予的權重越大。設平面上分布一系列離散點,已知其座標和值為xi,yi,zi i 1,2 n 通過距離加權值求z 點值,則z ...

AE中根據屬性提取要素的功能

昨天幫一位朋友實現乙個根據屬性提取要素的功能,現記錄如下,以備後用 先看看效果圖吧!要素提取前 要素提取後 以下實現這個功能的關鍵 主程式的路徑 這個是全域性變數 設定環境 geoprocessor gp new geoprocessor gp.overwriteoutput true 獲取要素圖層...