对Feature的操作插入添加删除

转自:http://www.cnblogs.com/henyihanwobushi/archive/2013/03/21/2972415.html

1、插入
 1  2 
 3 /// <summary>
 4 
 5 ///向featureclass中批量插入features ,批量插入features,用buffer的方法,要比循环一个个Store的方法快
 6 
 7 ///</summary>
 8 
 9 /// <param name="pFeatureClass">操作数据所在的IFeatureClass</param>
10 
11 private void InsertFeatures( IFeatureClass pFeatureClass , List< IGeometry> pGeos )
12 
13 {
14 
15   IFeatureBuffer pFeatBuf = pFeatureClass.CreateFeatureBuffer();
16 
17   IFeature pFeat = pFeatBuf;
18 
19   IFeatureCursor pFeatCur= pFeatureClass.Insert(true);
20 
21   for(int i = 0 ;i< pGeos.Count ;i++)
22 
23   {
24 
25   pFeat.Shape = pGeos(i);
26 
27   pFeatCur.InsertFeature(pFeatBuf);
28 
29   //避免一次flush,导致速度过慢
30 
31   if (i Mod 100 == 0 )
32 
33   {
34 
35     pFeatCur.Flush()
36 
37   }
38 
39   pFeatCur.Flush()
40 
41 }

2.删除

 1 ///<summary>删除某featurelayer中所有feature
 2 
 3 /// 该方法可以给一个queryfilter,进行删除符合条件的Ifeatures///</summary>
 4 
 5 /// <param name="pLayer ">:操作的图层</param>
 6 
 7 Private void DeleteAllFeatures(IFeatureLayer pLayer )
 8 
 9 {
10 
11   ITable pTable = pLayer.FeatureClass;
12 
13   pTable.DeleteSearchedRows(null);
14 
15 }

 ------------------------------------------------------ 补充分割线 ------------------------------------------------------

还有更效率的方法:http://blog.csdn.net/freewaywalker/article/details/23703863

 

posted @ 2017-08-29 14:47  marvelousone  阅读(673)  评论(0编辑  收藏  举报