zoukankan      html  css  js  c++  java
  • ae_feature的插入、复制和删除

    1、插入
    
    /// <summary>
    
    ///向featureclass中批量插入features ,批量插入features,用buffer的方法,要比循环一个个Store的方法快
    
    ///</summary>
    
    /// <param name="pFeatureClass">操作数据所在的IFeatureClass</param>
    
    private void InsertFeatures( IFeatureClass pFeatureClass , List< IGeometry> pGeos )
    
    {
    
      IFeatureBuffer pFeatBuf = pFeatureClass.CreateFeatureBuffer();
    
      IFeature pFeat = pFeatBuf;
    
      IFeatureCursor pFeatCur= pFeatureClass.Insert(true);
    
      for(int i = 0 ;i< pGeos.Count ;i++)
    
      {
    
      pFeat.Shape = pGeos(i);
    
      pFeatCur.InsertFeature(pFeatBuf);
    
      //避免一次flush,导致速度过慢
    
      if (i Mod 100 == 0 )
    
      {
    
        pFeatCur.Flush()
    
      }
    
      pFeatCur.Flush()
    
    }
    
    2、拷贝
    
    /// <summary>
    
    ///复制一个IFeatureClass中的要素到另外一个当中
    
    /// </summary>
    
    /// <param name="pFromFeatureClass">源数据所在的IFeatureClass</param>       
    
    /// <param name="pToFeatureClass">目标数据所在的IFeatureClass</param>
    
    private void CopyFeatureClass(IFeatureClass pFromFeatureClass, IFeatureClass pToFeatureClass)
    
    {
    
      try {
    
        IFeatureCursor pFromFeatureCursor = pFromFeatureClass.Search(null, false);
    
        IFeatureCursor pToFeatureCursor = pToFeatureClass.Insert(true);
    
        IFeatureBuffer pFeatureBuffer = pToFeatureClass.CreateFeatureBuffer();
    
        IFeature pFromFeature = pFromFeatureCursor.NextFeature();
    
        while (pFromFeature != null)
    
        {
    
          int IndexShape = pFeatureBuffer.Fields.FindField("Shape");
    
          pFeatureBuffer.set_Value(IndexShape, pFromFeature);
    
          pFeatureBuffer.Shape = pFromFeature.Shape;
    
          pToFeatureCursor.InsertFeature(pFeatureBuffer);
    
          pFromFeature = pFromFeatureCursor.NextFeature();
    
          pFeatureBuffer = pToFeatureClass.CreateFeatureBuffer();
    
        }
    
            pToFeatureCursor.Flush();
    
      }
    
      catch (Exception ex)
    
      {
    
        throw ex;
    
      }
    
    }
    
    3、删除
    
    ///<summary>删除某featurelayer中所有feature
    
    /// 该方法可以给一个queryfilter,进行删除符合条件的Ifeatures///</summary>
    
    /// <param name="pLayer ">:操作的图层</param>
    
    Private void DeleteAllFeatures(IFeatureLayer pLayer )
    
    {
    
      ITable pTable = pLayer.FeatureClass;
    
      pTable.DeleteSearchedRows(null);
    
    }
    
  • 相关阅读:
    八、UIViewController们之间的协作——Segue
    七、UIViewController导航栏
    六、APP开发的主角——UIViewController
    五、UI开发之核心基础——约束(深入)
    四、UI开发之核心基础——约束(实用)
    三、UI开发之核心基础——约束(入门)
    iOS开发笔记错误集
    Unity中内嵌网页插件UniWebView使用总结
    利用Aspose.Word控件实现Word文档的操作
    ReSharper 配置及用法(ZHUANG)
  • 原文地址:https://www.cnblogs.com/xianerwonder/p/4238983.html
Copyright © 2011-2022 走看看