zoukankan      html  css  js  c++  java
  • ArcGIS Engine 编辑- IWorkspaceEdit

    转自原文 ArcGIS Engine 编辑- IWorkspaceEdit

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

      IWorkspaceFactory pWsF = new ShapefileWorkspaceFactory();

                    IFeatureWorkspace pFtWs = pWsF.OpenFromFile(@"E:arcgisEngine数据", 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();

                    System.Diagnostics.Stopwatch TimeWatch = new System.Diagnostics.Stopwatch();

                    TimeWatch.Start();

                    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();
                    TimeWatch.Stop();

                    MessageBox.Show(TimeWatch.Elapsed.Milliseconds.ToString());

    效果如下:

     

     
  • 相关阅读:
    Spring4整合hibernate4
    Conference Search不错的学术会议日程提示网站
    python---解决“Unable to find vcvarsall.bat”错误
    PCV 学习笔记-ch1 主成分分析实现
    QQ客服代码,支持临时会话
    [TL-WR845N V4] 无线桥接(WDS)设置 + 迅捷桥接配置
    解决win2008下IIS7的HTTP500错误
    为IIS增加PHP支持
    解决mysql"Access denied for user'root'@'IP地址'"问题
    Windwos2008如何关闭IE增强的安全配置
  • 原文地址:https://www.cnblogs.com/arxive/p/6262951.html
Copyright © 2011-2022 走看看