arcengine中對feature的編輯
arcengine中對feature的編輯
對feature的編輯分為以下幾個部分
1.新建
2.修改
3.刪除
涉及到的介面有以下幾個
iworkspaceedit
ifeatureclass
ifeaturecursor
ifeature
其中iworkspaceedit用於啟動編輯 開始編輯操作 結束編輯操作 結束編輯
ifeatureclass 是資料的所在地
ifeaturecursor 是乙個游標 提供訪問資料的介面和修改資料的介面
ifeature 是物件的代表 我們要編輯的目標
編輯的過程如下:
1.新增乙個feature
//假設space是乙個iworkspaceedit
//引數表示是否需要使用undo/redo功能,該功能的粒度是editoperator.
spaceedit.startediting(false);
spaceedit.starteditoperator();
//新增乙個feature
ifeature newfea=feaclass.createfeature();
//為feature 新增屬性 設定圖形
newfea.store();//儲存屬性和圖形
spaceedit.stopeditoperator();//結束編輯操作
//結束編輯過程
//引數表示是否儲存編輯
spaceedit.stopediting(true);
2.新增多個feature
新增多個feature也可以向上面一樣 使用多次就可以了
當時也可以使用ifeaturecursor來新增資料
3.修改feature
新增feature中的修改屬性和圖形部分就是
每次修改後一定要呼叫store方法 這樣變化才可以儲存下來
4.刪除
ifeature 有乙個方法delete 可以用於刪除 當時經過測試發現對shapefile
會丟擲異常來。
ifeaturecuror有乙個deletefeature方法 可以用來刪除當前的feature ,經測試
對所有的資料來源型別都可以使用。
注意事項
1.不能設定feature的oid
2.不能設定feature的area
3.不能設定feature的lenght
4.不能設定feature的shape欄位,需要呼叫單獨的方法來給feature關聯幾何圖形。
ArcEngine中對Feature的編輯
arcengine中對feature的編輯 對feature的編輯分為以下幾個部分 1.新建 2.修改 3.刪除 涉及到的介面有以下幾個 iworkspaceedit ifeatureclass ifeaturecursor ifeature 其中iworkspaceedit用於啟動編輯 開始編輯操...
ArcEngine對Blob欄位賦值的方法
今天在測試資料入庫程式,發現對某個圖層操作之後,呼叫stopoperation,會出現 嘗試寫入或讀取受保護的記憶體 錯誤。經過測試,最終發現是因為該圖層包含有blob欄位,而 沒有專門對blob欄位進行處理。解決辦法 1 需要判斷字段型別,如果是blob型別,呼叫下面輔助方法獲取blob值 ime...
ArcEngine中版本的使用
使用版本的過程分為以下幾個步驟 1.將workspace或者資料集註冊為使用版本的workspace或者資料集 iversionedobject verobj ds as iversionedobject 假設ds 是乙個資料集 if verobj null verobj.pverdobj.isre...