基于arcpro3.0.2的删除图层中与掩码图层不相交的要素功能

2024-06-13 14:28

本文主要是介绍基于arcpro3.0.2的删除图层中与掩码图层不相交的要素功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于arcpro3.0.2的删除图层中与掩码图层不相交的要素功能在这里插入图片描述

其代码如下所示:

//开始删除功能
private void btnRun_Click(object sender, EventArgs e)
{ProcessWindow pw = null;try{//获取图层var delFeatsLayer = this.cb_DeleteFeatures.SelectedItem as FeatureLayer;if (delFeatsLayer == null){MessageBox.Show("请先选择一个要删除要素的图层", "提示");return;}var maskLayer = this.cb_MaskLayer.SelectedItem as FeatureLayer;if (maskLayer == null){MessageBox.Show("请先选择一个掩码图层", "提示");return;}pw = appTool.getNewProcessWindow("删除进度...");pw.Show();QueuedTask.Run(() =>{pw.setMinValue(0);pw.setMaxValue(10);pw.setValue(0);//FeatureClass delFc = delFeatsLayer.GetFeatureClass();FeatureClass maskFc = maskLayer.GetFeatureClass();long fIndex = 0;long fCount = delFc.GetCount();pw.setMaxValue(fCount);using (RowCursor rowCursor =delFc.Search(null)){   using(RowCursor maskCursor=maskFc.Search(null)){//合并几何对象pw.addMessageTime("正在准备合并掩码几何对象");Geometry maskGeo = null;while(maskCursor.MoveNext()){using(Feature maskFeat =maskCursor.Current as Feature){if(maskFeat != null && maskFeat.GetShape()!=null){if(maskGeo==null){maskGeo = maskFeat.GetShape();}else{maskGeo = GeometryEngine.Instance.Union(maskGeo, maskFeat.GetShape());}}}}pw.addMessageTime("合并掩码几何对象完毕");pw.addMessageTime("准备删除与掩码图层不相交的要素...");//判断并删除要素List<long> idList = new List<long>();while (rowCursor.MoveNext()){using (Feature delFeat = rowCursor.Current as Feature){fIndex += 1;if (delFeat != null){if (GeometryEngine.Instance.Intersects(delFeat.GetShape(),maskGeo)==false){    //不相交的要素,则删除之                                            idList.Add(delFeat.GetObjectID());}}if (fIndex % 5000 == 0){pw.addMessageTime("正在处理要素:    " + fIndex + "/" + fCount);}}}pw.setMaxValue(idList.Count);Table table = delFeatsLayer.GetTable();                            //for (int i=0;i<idList.Count; i++){                                long oid = idList[i];EditOperation delFeats = new EditOperation();delFeats.Delete(table, oid);if (delFeats.IsEmpty == false){delFeats.Execute();                                    }if (i % 5000 == 0){pw.addMessageTime("正在删除要素:    " + i + "/" + idList.Count);}}pw.addMessageTime("处理要素个数 " + fCount + "/" + fCount);}                        }                    pw.addMessageTime("处理完毕");//});}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{}}

本blog地址:https://blog.csdn.net/hsg77

这篇关于基于arcpro3.0.2的删除图层中与掩码图层不相交的要素功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057561

相关文章

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has