• merge2 改进


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    using ESRI.ArcGIS.DataSourcesGDB;
    using ESRI.ArcGIS.esriSystem;
    using ESRI.ArcGIS.Geodatabase;
    using ESRI.ArcGIS.Carto;
    using ESRI.ArcGIS.Geometry;
    using ESRI.ArcGIS.Display;

    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            private IFeatureWorkspace pCommonFeaureWorkspace = null;
            private IFeatureClass pCommonFeatureClass = null;   
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                IPropertySet pPS = new PropertySetClass();
                IWorkspaceFactory pWF = new SdeWorkspaceFactoryClass();
                pPS.SetProperty("Server", "8B63691CDAE4488");
                pPS.SetProperty("Instance", "5159");
                pPS.SetProperty("Database", "TestElementEdit");
                pPS.SetProperty("User", "sde");
                pPS.SetProperty("Password", "zhangjun1130");
                pPS.SetProperty("Version", "sde.default");
                IWorkspace pWs = pWF.Open(pPS, 0);
                IFeatureWorkspace pFWs = pWs as IFeatureWorkspace;
                pCommonFeaureWorkspace = pFWs;

                IFeatureClass pFC = pFWs.OpenFeatureClass("ElementEdit");
                pCommonFeatureClass = pFC;
                IFeatureLayer pFL = new FeatureLayerClass();
                pFL.FeatureClass = pFC;

                axMapControl1.AddLayer(pFL);

            }

            private void button2_Click(object sender, EventArgs e)
            {
                IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pCommonFeaureWorkspace;
                pWorkspaceEdit.StartEditing(true);
                pWorkspaceEdit.StartEditOperation();

                IFeatureSelection pFS = (IFeatureSelection)axMapControl1.Map.get_Layer(0);
                pFS.SelectFeatures(null, esriSelectionResultEnum.esriSelectionResultNew, false);

                ISelection pS = axMapControl1.Map.FeatureSelection;
                IEnumFeature pEF = (IEnumFeature)pS;

                IFeature pFeatureFirst = pEF.Next();
                Console.WriteLine(pFeatureFirst.get_Value(0).ToString());

                IGeometry pGeometryFirst = pFeatureFirst.Shape;
                ITopologicalOperator2 pTopOperatorFirst = (ITopologicalOperator2)pGeometryFirst;
                IRelationalOperator pRelOperatorFirst = (IRelationalOperator)pGeometryFirst;
                pTopOperatorFirst.IsKnownSimple_2 = false;
                pTopOperatorFirst.Simplify();
                pGeometryFirst.SnapToSpatialReference();

                IGeometry pGeometrySecond;
                IFeature pFeatureSecond = pEF.Next();

                while (pFeatureSecond != null)
                {
                    pGeometrySecond = pFeatureSecond.ShapeCopy;
                    ITopologicalOperator2 pTopOperatorSecond = (ITopologicalOperator2)pGeometrySecond;
                    pTopOperatorSecond.IsKnownSimple_2 = false;
                    pTopOperatorSecond.Simplify();
                    pGeometrySecond.SnapToSpatialReference();

                    Console.WriteLine(pFeatureSecond.get_Value(0).ToString());

                    if (pRelOperatorFirst.Overlaps(pGeometrySecond) == true)
                    {
                        pGeometryFirst = pTopOperatorFirst.Union(pGeometrySecond);
                        pFeatureSecond.Delete();
                    }

                    pFeatureSecond = pEF.Next();
                }

                pTopOperatorFirst.IsKnownSimple_2 = false;
                pTopOperatorFirst.Simplify();
                pFeatureFirst.Shape = pGeometryFirst;
                pFeatureFirst.Store();


                pWorkspaceEdit.StopEditOperation();
                pWorkspaceEdit.StopEditing(true);
                axMapControl1.Refresh();
            }
        }
    }
  • 相关阅读:
    iOS开发UI篇—Quartz2D使用(绘图路径)
    iOS开发UI篇—Quartz2D简单使用(三)
    iOS开发UI篇—Quartz2D使用(图片剪切)
    WordPress主题开发: 制作文章页面single.php
    Wordpress页面判断
    为WordPress某个文章添加额外的样式
    Wordpress本地伪静态设置
    Wordpress添加关键词和描述
    Wordpress制作sidebar.php
    Wordpress固定链接设置
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1454533.html
Copyright © 2020-2023  润新知