/// <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. hdu-1166 敌兵布阵---树状数组模板

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目大意: 维护动态的区间和,单点更新,就是模板题 #include<iostream& ...

  2. Android(java)学习笔记77:Android中assets文件夹资源的访问

    Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件 ...

  3. THinkPHP 5.0 域名路由

    ThinkPHP支持完整域名.子域名和IP部署的路由和绑定功能 要启用域名部署路由功能,首先需要开启: 'url_domain_deploy' => true 定义域名部署规则支持两种方式:动态 ...

  4. CSS 样式、布局、盒子模型

    Css内容: 常用样式: 字体    颜色   背景 布局: 浮动   定位   标签特性 标签盒子模型:  边距   边框 动画: 旋转 渐变 注意:Css引路径从css文件里找   Html和js ...

  5. vi中系统剪切板的设置

    在vi中,如果编译时没有clipboard属性,将vi中的内容拷贝到系统剪切板有些麻烦.可以用如下的方法,查看vi 是否支持系统剪切板的功能: xt@xt-ThinkPad-X220:~$ vi -- ...

  6. rem适配方案

    页面布局单位计算 一般有两大类:绝对长度单位和相对长度单位 绝对长度单位: px 像素:是显示屏上显示的每一个小点,为显示的最小单位 in 英寸,1in = 96px cm 厘米,1cm = 37.8 ...

  7. 《转载》ASP动态iframe

    原文:[ASP.NET]关于iframe的两个技巧 最近在给朋友写个网站,虽然不大,但是也碰到了一些问题.这篇就为解决ASP.NET中关于IFRAME的两个很现实的问题提供解决方法.PS:呵呵,又做了 ...

  8. Python循环的一些基本练习

    #1:# name = input('请输入你的身份')# if name == 'egon':# print('--> 超级管理员')# elif name == 'tom':# print( ...

  9. [bzoj1912]异象石(set)

    Description Adera是Microsoft应用商店中的一款解谜游戏. 异象石是进入Adera中异时空的引导物,在Adera的异时空中有一张地图.这张地图上有N个点,有N-1条双向边把它们连 ...

  10. CF 497 div 2 B

    B. Turn the Rectangles time limit per test 2 seconds memory limit per test 256 megabytes input stand ...