麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

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-Sailor

作者:

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

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)