原文 ao建立ifeature的兩種方法
在arcgis resouce center中,esri介紹了兩種建立feature的方法(可以在本地的geodatabase和sde的featureclass)
第一種是ifeatureclass.createfeature,在這種方法最後需要加上ifeature.store去提交建立的要素,本人認為這種方法相比下面一種方法更好些,因為store的方法能夠直接提交修改並在資料庫中看到,不會因為其他複雜的操作影響資料入庫。下面是在sde庫中建立ifeature的**給大家參考一下:
iaoinitialize m_aoinitializa = newaoinitializeclass();
esrilicensestatus pesrilicensestatus=m_aoinitializa.initialize(esrilicenseproductcode.esrilicenseproductcodeenginegeodb);
ipropertyset propset = new
propertysetclass();
propset.setproperty(
"server
", "
192.168.1.143");
propset.setproperty(
"instance
", "
5151");
propset.setproperty(
"user
", "
mytestuser");
propset.setproperty(
"password
", "
123456");
propset.setproperty(
"version
", "
sde.default");
iworkspacefactory pwf = new
sdeworkspacefactoryclass();
ifeatureworkspace pfeatureworkspace= (ifeatureworkspace)(pwf.open(propset, 0
)) ;
ifeatureclassfeaclass=pfeatureworkspace.openfeatureclass("
要開啟的featureclass名字");
ifeature feature =feaclass.createfeature();
feature.shape=igeometry;//
(這裡的igeometry可以是ipolygon,ipolyline,ipoint)
int fieldindex = feature.fields.findfield("
欄位名"
);feature.set_value(fieldindex,
"字段值");
feature.store();
第二種方法為ifeatureclass.createfeaturebuffer,這個方法採用插入游標(insert cursors)的方法,在建立簡單資料的時候效率會比第一種方法更快些,但是在esri的官網上提到使用ifeaturecursor.insertfeature方法時,複雜的操作和各種事件的觸發不能夠保證。根據自己實際操作的心得,有時候會出現資料建立延時,明明**已經通過了,但資料庫中的資料要過很久才能顯示出來,甚至有時候都顯示不出來。這個客戶肯定接受不了這種沒***的資料建立。還有一點,在使用sde庫時,這種方法只適用於沒有註冊版本的dateset或featureclass(這個僅僅是在我的程式**現過這種問題,僅供參考),下面為**(開啟sde的部分就不重複了)
ifeaturecursor feacursor = feaclass.insert(true);ifeaturebuffer feabuffer =feaclass.createfeaturebuffer();
feabuffer.shape = igeometry;//
(這裡的igeometry可以是ipolygon,ipolyline,ipoint)
int fieldindex = feabuffer.fields.findfield("
欄位名"
);if (fieldindex >= 0
)feacursor.insertfeature(feabuffer);
經過一位網友的幫助,以上的文章有不足的地方,就是ifeatureclass.createfeaturebuffer在featureclass中插入一條記錄,在本文中feacursor.insertfeature(feabuffer)之後加上feacrusor.fulsh()將建立的記錄輸入到資料庫中,而且在面對大資料量插入的時候用ifeatureclass.createfeaturebuffer()效率比ifeatureclass.createfeature高,詳細可以參見以下**:link,這裡面有詳細介紹.
AO建立IFeature的兩種方法
原文 ao建立ifeature的兩種方法 在arcgis resouce center中,esri介紹了兩種建立feature的方法 可以在本地的geodatabase和sde的featureclass 第一種是ifeatureclass.createfeature,在這種方法最後需要加上ifeat...
ArcEngine建立IFeature的三種方法
在arcgis resouce center 中,esri介紹了兩種建立feature的方法 可以在本地的geodatabase和sde的featureclass 一 ifeatureclass.createfeature,在這種方法最後需要加上ifeature.store去提交建立的要素,本人認為...
執行緒建立的兩種方式
建立執行緒的兩種方式 1.繼承thread並重寫方法,在run方法中定義執行緒要執行的任務 class mythread extends thread public class threaddemo1 2.實現runable介面並重寫run方法 class myrunnable implements...