在一般的数据编辑流程中,有些时候可能会涉及到多边形内部的挖洞操作。在ArcEngine中,一般可以通过两种方式实现挖洞操作。一种是叠置分析,这主要是针对图层与图层之间的操作,我会在后续的博客中进行介绍,另一种则是用户自己绘制多边形实现挖洞操作,这主要是利用ITopologicalOperator接口进行实现。先来看一下效果图:

代码如下:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.SystemUI;namespace WindowsFormsApplication1
{public partial class MainForm : Form{public MainForm(){InitializeComponent();axMapControl1.LoadMxFile(@"E:\Users\dsf\Desktop\无标题.mxd");}// OnMouseDown事件private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e){IFeatureClass pFeatureClass = (axMapControl1.get_Layer(0) as IFeatureLayer).FeatureClass;IGeometry pGeometry = axMapControl1.TrackPolygon();// 空间过滤器ISpatialFilter pSpatialFilter = new SpatialFilter();pSpatialFilter.AddField("Shape");pSpatialFilter.Geometry = pGeometry;pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;// 要素游标IFeatureCursor pFeatureCursor = pFeatureClass.Search(pSpatialFilter, true);IFeature pFeature = pFeatureCursor.NextFeature();if (pFeature == null){return;}// 遍历游标while (pFeature != null){ITopologicalOperator pTopologicalOperator = pFeature.ShapeCopy as ITopologicalOperator;pFeature.Shape = pTopologicalOperator.Difference(pGeometry);pFeature.Store();pFeature = pFeatureCursor.NextFeature();}// 刷新地图System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);axMapControl1.ActiveView.Refresh();}}
}

ArcEngine实现多边形内部的挖洞操作相关推荐

  1. 物理挖洞之分块 !Cocos Creator !

    减少多边形计算!画饼分之- 效果预览 回顾 在 物理挖洞之链条!实现!(含视频讲解) 中介绍了用 PolyBool 和链条组件(cc.PhysicsChainCollider)实现物理挖洞的方法. 虽 ...

  2. php挖洞提权,挖洞经验 | 看我如何发现GitHub提权漏洞获得$10000赏金

    之前,我从没参加过GitHub官方的一些漏洞众测项目,在HackerOne发起的HackTheWorld比赛中,主办方宣传除了赏金以外,还有机会获得Github提供的终身无限制私有库(unlimite ...

  3. ArcGIS面矢量挖洞

    以下面的影像为例: 问题导向: 制作建筑物样本标签时,建筑物聚集群中有黑色阴影,为了避免在模型训练(深度学习)中出现干扰,所以在勾画覆盖建筑物聚集区的面矢量后,需要将中间的黑色阴影挖除.下面是在Arc ...

  4. 【超图】SuperMap iDesktop 倾斜摄影数据隧道构建——挖洞

    作者:taco 前言 在很多交通的项目场景中,通常会有隧道的模型数据.但是隧道的数据会和其他的数据出现一些"冲突". 比如我的地形数据或者倾斜数据会将洞口给封住.那这就与实际应用场 ...

  5. 详述 Discord Desktop app RCE 挖洞经过,最后得$5000 + $300 (含 PoC 视频)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 几个月前,我在 Discord 桌面应用中发现了一个远程代码执行漏洞,并把漏洞报告提交给 Discord 公司的漏洞奖励计划.这个 R ...

  6. 沙场白帽老兵聊未来的挖洞方向及其它

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 可以说,Ziot(真名 Brett Buerhaus)和网络安全同呼吸共命运.目前他在 Blizzard Entertainment ...

  7. 白天做安全,晚上去挖洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 今天带来的是Kaung Htete Aung (@ris) 和 Samuel Eng (@samengmg) 的故事.他们来自新加坡, ...

  8. 【经验总结】小白挖洞十天经验分享

    0x01 前言 十天是指六月三十号到七月九号这十天的时间,这段时间正值暑假刚开始,虽然知道现在需要备战考研,但是看了几天书后却怎么也看不进去,这时刚好有个作业就是挖洞,于是再一次把考研的书扔到了一边. ...

  9. 记一次src挖洞实战——逻辑漏洞

    前言 在学习了大量web逻辑漏洞的知识后,想进行实战.练练手.作为小菜鸡的我,这是我第二次进行实战挖洞,可能会存在许多问题.望各位大师傅多多指点. 闲话少说,直接开整 实战 1.信息收集 首先,在sr ...

最新文章

  1. 综述:PyTorch显存机制分析
  2. jQuery——获取当前索引值
  3. c语言用数组实现循环移位,如何将一个数组的元素循环左移?
  4. TCP/IP 协议标准简单描述
  5. Linux下文件描述符
  6. 安卓自动化测试(一)
  7. MVC之实体框架(数据持久化框架)EntityFrameWork(EF)
  8. 五步法颈椎病自我按摩图解
  9. 数学图形之SineSurface与粽子曲面
  10. 拉取远程分支_git clone切换分支步骤,代理设置,作者信息设置
  11. CentOS7 的开机自启动systemctl
  12. C++中模块(DLL)对外暴露接口的几种方式
  13. 构建Postfix邮件系统(一) -- postfix+dovecot
  14. 深浅拷贝和数列,变量的区别
  15. RX8025 RTC闹钟唤醒Alarm_D的初始化
  16. [Java,IDEA]连接oracle的关于oracle.jdbc.driver.OracleDriver一直驱动加载失败的原因
  17. 全民一起玩Python 之 基础篇视频教程
  18. java 支付宝支付 demo_java开发支付宝支付详细流程_demo的运行
  19. html 页面自动弹出,javaScript实现自动弹出页面
  20. dfuse 和 EOS Studio 携手让开发者工具更上一层楼

热门文章

  1. Python制作当年第一款真正意义上的手机游戏——贪吃蛇游戏
  2. SMT表面贴片工序详解
  3. 大数据的监控和数据准确性保证
  4. Swift --- 扩展(Extention)
  5. matlab 语音识别为文字,语音识别(Speech Recognition)是让机器通过识别和理解过程把语音信号转变为相应的文本...
  6. 我的第一个Android应用BMI-深入浅出Android
  7. 病毒性感冒和细菌性感冒怎样区分
  8. Intellij IDEA集成sencha插件开发Extjs应用
  9. 谷歌手机地图中文java_谷歌地图开发(1)使用MapView显示地图
  10. 策略模式(用策略模式实现我们淘宝,京东,美团等等简易满减活动)