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;
                }
                else
                    pFeatureFirst = 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);
        }
时间: 2024-10-10 17:24:22

Arcengine 基本操作(待更新)的相关文章

mongodb的基本操作之更新不存在的数据

查找y为100的数据 db.test_collection.find({y:100}) 发现没有,这时候将y为100的数据更新为y为999的数据 db.test_collection.update({y:100},{y:999}) 我们再查找y为999的数据 db.test_collection.find({y:999}) 发现不存在 我们有时候有这样的需求,在更新一条不存在的数据时,自动创建,这就是update第三个参数,如果为true,表示如果查找的数据不存在,就自动创建一条 db.test

redis 在Windows下的安装及基本操作(更新中~~~)

Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis. 打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf . 如果想方便的话,可以把

总结一下矩阵的基本操作

总结一下矩阵的基本操作 同步更新于这里 加减法 非常简单,只要对应位置相加就行了(余老师:这不是今天的重点!!! 数乘 嗯,把所有元素同时乘以那个数就行了 矩阵乘矩阵 比较复杂, A*B首先要A的列数=B的行数 然后看图意会一下,A横着过,B竖着过, C[i][j]=A[i][k]*A[k][j]相加,1<=k<=A的列数(或B的行数) (汉字表示结果的第i行,数字表示结果的第j列. 稍微写了一个代码 #include<iostream> using namespace std;

mango-1.4.1 文档

文档目录 快速开始 添加依赖包 数据库准备 创建HelloWorld类 书写插入与查询方法 构造数据源并初始化mango对象 获取dao并调用插入与查询方法 查看完整示例代码和表结构 基本操作 准备工作 更新 insert操作 delete操作 update操作 查询 查询单个属性 查询自定义对象 查询多行数据 使用in语句进行查询 批量更新 全局表名 查看完整示例代码和表结构 参数绑定 序号绑定 重命名绑定 列表参数绑定 属性绑定 属性自动匹配 混合绑定 查看完整示例代码和表结构 查询映射 映

当我们谈论Erlang Maps时,我们谈论什么 Part 2

声明:本文讨论的Erlang Maps是基于17.0-rc2,时间2014-3-4.兴许Maps可能会出现语法或函数API上的有所调整,特此说明. 前情提要: [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1 继续昨天的话题,在Erlang Factory SF Bay Area 2013有一个议题:"Where are we on the Map?" [PDF ],这个Talk基本上就是选取了EEP43的要点,有兴趣的同学能够FQ观看视频 W

入手线段树 hdu1754

今天学习了线段树的三个基本操作 建树 更新 查找 先理解下什么是线段树就这个题目而言 如果我们用普通的数组去存放 然后依次遍历访问的话 时间太多了线段树利用了二分的思想 把数据以段的形式进行储存 这样在访问的时候 时间复杂度就下来了 上图就是线段树的一个简单的模型 创建线段树(初始化)]: 由于线段树是用二叉树结构储存的,而且是近乎完全二叉树的,所以在这里我使用了数组来代替链表上图中区间上面的红色数字表示了结构体数组中对应的下标. 在完全二叉树中假如一个结点的序号(数组下标)为 I ,那么 (二

PHP对于数据库的基本操作——更新数据

PHP对于数据库的基本操作--更新数据 主要的语句:$update = mysql_query("update user set password='abc' where username='123'"); 这句话的意思是,更新user表,设置passWord字段的值为abc,筛选条件为username为123的数据.就是修改user表里面username为123字段里面的password,将password的值为abc. 前面的随笔里面忘了说  where 这个了,这个我理解为筛选,

MySQL数据库起步 关于数据库的基本操作(更新中...)

mysql的基本操作 连接指定的服务器(需要服务器开启3306端口) mysql -h ip地址 -P 端口号 -u 账号 -p 密码 删除游客模式 mysql -h ip地址 -P 端口号 -u 账号 -p 密码 修改root密码(修改之后需要重启mysql服务) 第一种:进入数据库 #这里的密码设置为123456 update mysql.user set password=password("123456") where host='localhost'; 第二种:不用进入数据库

modelsim基本操作步骤及每步骤问题解决1(后续有改动会更新)

①File ->New =>Project出现工程对话框->1)工程命名,2)安放路径自己设置,3)库默认work.点击OK 然后出现添加文件到工程对话框->可新建文件或直接添加(找文件的路径). ②工程编译(在Project栏里Run(快捷按钮或F9).v文件(或Complie->Complie all )) ③回到Library栏里的work右击.v文件(必须是测试文件) ->Simulate(仿真).进入sim栏 ④在sim栏右的Object框里选择信号后->