ArcGIS Engine 10 开发手册(9-3)IWorkspaceEdit接口

本文目录
  • 正文

IWorkspaceEdit 接口是 ArcGIS Engine 实现空间数据编辑的重要接口,它让程序启动或者停止一个编辑 流程,在这个编辑流程内,可以对数据库中的数据进行删除,添加,更改。我们所有的对要素或者属性的修改都可以放到一个会话中,这个会话就相当于 ArcMap 中的 Start Edting,当会话启动后,我们就可以在 图层中对数据进行修改,删除等操作。如果我们已经在使用 IEngineEditor 接口编辑 Geodatabase,那就不应该使用该接口控制编辑。

方法和属性

IWorkspaceEdit 接口的方法和属性如下:

这个例子中,我创建了 1000 条要素,并结合缓冲将数据写到文件中,并且添加了时间统计,当然数据是我捏造的,还请原谅,这个花费的时间为 0.978 秒,速度还行。

/// <summary>

/// 编辑的全局变量

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button6_Click_1 (object sender, EventArgs e)

{

  IWorkspaceFactory pWsF = new ShapefileWorkspaceFactory ();
  IFeatureWorkspace pFtWs = pWsF.OpenFromFile (@"E:\arcgis\Engine\数据", 0) as IFeatureWorkspace;

  IFeatureClass pFtClass = pFtWs.OpenFeatureClass ("edit");
  IFeatureLayer pFt = new FeatureLayerClass ();
  pFt.FeatureClass = pFtClass;

  pFt.Name = "画线";
  axMapControl1.Map.AddLayer (pFt as ILayer);
  axMapControl1.Refresh ();

  //为了进一步说明Idataset,我特意从下面的代码 
  IDataset pDataset = pFtClass as IDataset;
  IWorkspace pWs = pDataset.Workspace;

  pWsEdit = pWs as IWorkspaceEdit;
  pWsEdit.StartEditing (true);

  pWsEdit.StartEditOperation ();

  pBoolStart = pWsEdit.IsBeingEdited ();

  IFeatureBuffer pFeatureBuffer = pFtClass.CreateFeatureBuffer ();

  IFeatureCursor pFtCusor = pFtClass.Insert (true);

  ESRI.ArcGIS.Geometry.IPolyline polyline = new ESRI.ArcGIS.Geometry.PolylineClass ();

  ESRI.ArcGIS.Geometry.IPoint pPoint = new ESRI.ArcGIS.Geometry.PointClass ();

  ESRI.ArcGIS.Geometry.IPoint pPoint2 = new ESRI.ArcGIS.Geometry.PointClass ();

  for (int i = 0; i < 1000; i++)

  {

    pPoint.X = 48 + i * 102;
    pPoint.Y = 65 + i * 10;
    polyline.FromPoint = pPoint;
    pPoint2.X = 480 + i * 10;
    pPoint2.Y = 615 + i * 102;

    polyline.ToPoint = pPoint2;
    pFeatureBuffer.Shape = polyline;
    pFeatureBuffer.set_Value (2, i);

    object pFeatureOID = pFtCusor.InsertFeature (pFeatureBuffer);

  }

  pFtCusor.Flush ();
  pWsEdit.StopEditing (true);
  axMapControl1.Refresh ();

}

运行结果

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:
GIS爱好者,学GIS,更爱玩GIS。

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群(一):291616564(满) 麻辣GIS

本站QQ群(二):166408035(新) 麻辣GIS(二)

微信公众号:malagis,扫描右边二维码直接关注。

发表评论