/// <summary>
/// 删除fieldName属性值为1的弧段
/// </summary>
/// <param name="fieldName"></param>
/// <param name="t"></param>
public void DelectPolyline(string fieldName, int t)
{ ILayer pLayer = axMapControl1.get_Layer();
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[])
{
//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) == -)
{
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);
}

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

  1. 《mongoDB》基本操作-创建/更新/删除文档

    一:基本操作 - db; 当前选择的集合(等于数据库名) > db demo -  use db_name; 选择你要操作的集合 > use demo switched to db dem ...

  2. mongdb基本操作和更新操作

    1.创建数据库 use hqj 不会真正的创建db,只有insert之后才会创建2.查看数据库show dbs3.插入文档db.hqj.insert({name:'111'})4.查看所有的文档sho ...

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

    查找y为100的数据 db.test_collection.find({y:100}) 发现没有,这时候将y为100的数据更新为y为999的数据 db.test_collection.update({ ...

  4. git基本操作---持续更新(2017-08-11)

    git 强制push $ git push -u origin master -f 查看本地标签 $ git tag 打标签并添加备注 $ git tag 20170811 -m"图片保存多 ...

  5. HDU 3577Fast Arrangement(线段树模板之区间增减更新 区间求和查询)

    Fast Arrangement Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  6. [Erlang 0117] 当我们谈论Erlang Maps时,我们谈论什么 Part 2

    声明:本文讨论的Erlang Maps是基于17.0-rc2,时间2014-3-4.后续Maps可能会出现语法或函数API上的有所调整,特此说明. 前情提要: [Erlang 0116] 当我们谈论E ...

  7. mango-1.4.1 文档

    文档目录 快速开始 添加依赖包 数据库准备 创建HelloWorld类 书写插入与查询方法 构造数据源并初始化mango对象 获取dao并调用插入与查询方法 查看完整示例代码和表结构 基本操作 准备工 ...

  8. Splay树简单操作

    前几天刚刚自学了一下splay,发现思路真简单实现起来好麻烦 先贴一下头文件 # include <stdio.h> # include <stdlib.h> # includ ...

  9. 数据库系统概论(2)——Chap. 2 关系数据库基础

    数据库系统概论(2)--Chap.2 关系数据库基础 一.关系数据结构及形式化定义 1.关系 关系模型的数据结构只包含单一的数据结构--关系.在关系模型中,现实世界的实体及实体间的各种联系均用单一的结 ...

随机推荐

  1. POJ-1936 All in All---字符串水题

    题目链接: https://vjudge.net/problem/POJ-1936 题目大意: 给两个字符串,判断是s1是不是s2的子序列 思路: 水 #include<iostream> ...

  2. IOS 一些好的框架和 技术大牛的博客

    http://blog.csdn.net/rodulf/article/details/51871093  比较好的框架链接: http://www.jianshu.com/p/9216c561b0f ...

  3. linux怎么进home目录下

    可以使用cd命令,cd命令的功能是切换到指定的目录: 命令格式:cd [目录名] 有几个符号作为目录名有特殊的含义: “/”代表根目录.“..”代表上一级目录.“~”代表HOME目录.“-”代表前一目 ...

  4. fold - 折叠输入行, 使其适合指定的宽度

    总览 (SYNOPSIS) ../src/fold [OPTION]... [FILE]... 描述 (DESCRIPTION) 折叠(wrap) 每个 文件 FILE 中 的 输入行 (缺省为 标准 ...

  5. python_78_软件目录结构规范

    一定要看http://www.cnblogs.com/alex3714/articles/5765046.html #print(__file__)#打印的是文件的相对路径 import os pri ...

  6. bootstrapValidator 插件

    1 有关内容:https://blog.csdn.net/u013938465/article/details/53507109 https://blog.csdn.net/wangtongxue12 ...

  7. WebAppBuilder独立于portal之arcgis for js应用框架研究之二

    WAB采用ArcGIS JavaScript for API作为地图开发底层,采用Web AppBuilder作为开发框架,利用该框架即拿即用的Widget来构建应用,比如制图.查询.地理处理.编辑. ...

  8. linux内核--定时器API

    /**<linux/timer.h> 定时器结构体 struct timer_list { ........ unsigned long expires; --内核希望定时器执行的jiff ...

  9. 认识mysql(4)

    今日是MySQL的第四篇,难度会稍微加大,加油! 开始吧! 1.外键(foreign  key) 1.定义:让当前表字段的值在另一个表的范围内选择 2.语法: foreign key(参考字段名) r ...

  10. 5- vue django restful framework 打造生鲜超市 -完成商品列表页(上)

    使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, ...