zoukankan      html  css  js  c++  java
  • featurecursor

     //IFeatureBuffer Example

        public void IFeatureBuffer_Example(IFeatureClass featureClass)
        {
            //Function is designed to work with polyline data
            if (featureClass.ShapeType != ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline) { return; }


            //get the Workspace from the IDataset interface on the feature class
            IDataset dataset = (IDataset)featureClass;
            IWorkspace workspace = dataset.Workspace;
            //Cast for an IWorkspaceEdit
            IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;


            //Start an edit session and operation
            workspaceEdit.StartEditing(true);
            workspaceEdit.StartEditOperation();


            //Create the Feature Buffer
            IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
            //Create insert Feature Cursor using buffering = true.
            IFeatureCursor featureCursor = featureClass.Insert(true);


            object featureOID;


            //With a feature buffer you have the ability to set the attribute for a specific field to be
            //the same for all features added to the buffer.
            featureBuffer.set_Value(featureBuffer.Fields.FindField("InstalledBy"), "K Johnston");


            //Here you can set the featurebuffers's shape by setting the featureBuffer.Shape
            //to a geomerty that matched the featureclasses.
            //Create 100 features using FeatureBuffer and insert into a feature cursor
            ESRI.ArcGIS.Geometry.IPolyline polyline = new ESRI.ArcGIS.Geometry.PolylineClass();
            ESRI.ArcGIS.Geometry.IPoint point = new ESRI.ArcGIS.Geometry.PointClass();
            for (int i = 0; i < 100; i++)
            {
                //Create the polyline geometry to assign to the new feature
                point.X = 498490 + i * 10;
                point.Y = 675380 + i * 10;
                polyline.FromPoint = point;
                point = new ESRI.ArcGIS.Geometry.PointClass();
                point.X = 498480 + i * 10;
                point.Y = 675390 + i * 10;
                polyline.ToPoint = point;
                featureBuffer.Shape = polyline;


                //Insert the feature into the feature cursor
                featureOID = featureCursor.InsertFeature(featureBuffer);
            }
            //Flush the feature cursor to the database
            //Calling flush allows you to handle any errors at a known time rather then on the cursor destruction.
            featureCursor.Flush();


            //Stop editing
            workspaceEdit.StopEditOperation();
            workspaceEdit.StopEditing(true);


            //Release the Cursor
            System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);

  • 相关阅读:
    约瑟夫问题
    再谈Bellman-Ford
    Uva 11478 Halum操作
    Uva 11090 在环中
    Bellman-Ford
    Uva 10537 过路费
    Uva 10917
    LA 3713 宇航员分组
    2-SAT
    LA 3211 飞机调度
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1406133.html
Copyright © 2011-2022 走看看