Arcengine 基本操作(待更新)
生活随笔
收集整理的這篇文章主要介紹了
Arcengine 基本操作(待更新)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/// <summary>/// 刪除fieldName屬性值為1的弧段/// </summary>/// <param name="fieldName"></param>/// <param name="t"></param>public void DelectPolyline(string fieldName, int t){ILayer pLayer = axMapControl1.get_Layer(0);IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;IFields pIFields = pFeatureLayer.FeatureClass.Fields;int fieldIndex = pIFields.FindField(fieldName);var pDataset = pFeatureClass as IDataset;IWorkspace pWorkspace = pDataset.Workspace;IFeatureWorkspace pFWs = pWorkspace as IFeatureWorkspace;IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pFWs;pWorkspaceEdit.StartEditing(true);pWorkspaceEdit.StartEditOperation();IFeatureCursor pEF = pFeatureLayer.Search(null, false);IFeature pFeatureDe = pEF.NextFeature();while (pFeatureDe != null){if (Convert.ToInt32(pFeatureDe.get_Value(fieldIndex)) != t){pFeatureDe.Delete();}pFeatureDe = pEF.NextFeature();}pWorkspaceEdit.StopEditOperation();pWorkspaceEdit.StopEditing(true);MessageBox.Show("刪除成功");}
?
///若干個線要素合并成一個private void MergeFeatures(List<int> OneFeatureArr,ILayer tSelectLayer){IFeatureLayer tFeatureLayer = tSelectLayer as IFeatureLayer;IFeatureClass pFeatureClass = tFeatureLayer.FeatureClass;var pDataset = pFeatureClass as IDataset;IWorkspace pWorkspace = pDataset.Workspace;IFeatureWorkspace pFWs = pWorkspace as IFeatureWorkspace;IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pFWs;pWorkspaceEdit.StartEditing(true);pWorkspaceEdit.StartEditOperation();IFeatureLayer pFeatureLayer = tSelectLayer as IFeatureLayer;IFeatureCursor pEF = pFeatureLayer.Search(null, false);IFeature pFeatureFirst = pEF.NextFeature();while (pFeatureFirst != null){//找到在數組里的第一個要素if (pFeatureFirst.OID == OneFeatureArr[0]){//OneFeatureArr.RemoveAt(0);//除掉第一個要素break;}elsepFeatureFirst = pEF.NextFeature();}pEF = pFeatureLayer.Search(null, false);IGeometry pGeometryFirst = pFeatureFirst.Shape;ITopologicalOperator2 pTopOperatorFirst = (ITopologicalOperator2)pGeometryFirst;IRelationalOperator pRelOperatorFirst = (IRelationalOperator)pGeometryFirst;pTopOperatorFirst.IsKnownSimple_2 = false;pTopOperatorFirst.Simplify();pGeometryFirst.SnapToSpatialReference();IGeometry pGeometrySecond = null;IFeature pFeatureSecond = pEF.NextFeature();IGeometryCollection Geometrybag = new GeometryBagClass();//裝geometry的袋子object oMissing = Type.Missing;while (pFeatureSecond != null){if (OneFeatureArr.IndexOf(pFeatureSecond.OID) == -1){pFeatureSecond = pEF.NextFeature();continue;}pGeometrySecond = pFeatureSecond.ShapeCopy;Geometrybag.AddGeometry(pGeometrySecond, ref oMissing, ref oMissing);//將geometry裝進袋子//pFeatureSecond.Delete();pFeatureSecond = pEF.NextFeature();}IEnumGeometry tEnumGeometry = (IEnumGeometry)Geometrybag;pTopOperatorFirst.ConstructUnion(tEnumGeometry);pTopOperatorFirst.IsKnownSimple_2 = false;pTopOperatorFirst.Simplify();pFeatureFirst.Shape = pGeometryFirst; pFeatureFirst.Store(); pWorkspaceEdit.StopEditOperation();pWorkspaceEdit.StopEditing(true);}?
?
轉載于:https://www.cnblogs.com/jinqier/p/4153525.html
總結
以上是生活随笔為你收集整理的Arcengine 基本操作(待更新)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 取整
- 下一篇: 俄罗斯方块(C语言源代码)