ArcEngine C#二次开发图层处理:根据属性分割图层(Split)

news2024/9/28 8:45:04

需求:仅根据某一属性,分割图层,并以属性值命名图层名称保存。

众所周知,ArcGIS ArcToolbox中通过Split可以实现图形分割一个图层,以属性值命名图层,如下图所示。

本文仅仅依据属性值,将一个shp图层,自动分割成多个图层shp。当然如果不嫌麻烦,可以通过选中feature,使用export,逐批次导出图形,也可以实现,实现该功能主要是分割大量数据,节省时间。

使用VS C# 2012 ArcEngine10.2二次开发,操作模式如下图:

一、实现界面如下图:

二、执行步骤:

1.选择输入图层(shp、gdb等arcgis通用图层);

2.选择属性列(split field)

3.选择一个或多个属性值

4.保存导出shp图层,图层名以属性值命名。

三、输出结果shp图层,如下图:

四、关键代码

public void SplitByFieldShp(IFeatureClass inputFeatureClass, string inputfieldValue, string outputPath)
        {
            //创建一个Geoprocessor工具类
            Geoprocessor geoprocessor = new Geoprocessor();
            try
            {
                //1.创建一个临时图层
                geoprocessor.OverwriteOutput = true;
                MakeFeatureLayer makefeature = new MakeFeatureLayer();
                makefeature.in_features = inputFeatureClass;
                makefeature.out_layer = "temp_lyr";//临时图层名称
                geoprocessor.Execute(makefeature, null);
                //2.通过属性查找feature
                SelectLayerByAttribute selectTool = new SelectLayerByAttribute();
                selectTool.in_layer_or_view = makefeature.out_layer;
                selectTool.selection_type = "NEW_SELECTION";
                selectTool.where_clause = selectField + " = '" + inputfieldValue + "'";
                geoprocessor.Execute(selectTool, null);
                //3.导出选择图层              
                ESRI.ArcGIS.DataManagementTools.CopyFeatures copyfeature = new ESRI.ArcGIS.DataManagementTools.CopyFeatures();
                copyfeature.in_features = selectTool.out_layer_or_view;
                copyfeature.out_feature_class = outputPath + @"\" + inputfieldValue + ".shp";
                geoprocessor.Execute(copyfeature, null);
            }
            catch (Exception ex)
            {
                //如果出错,输出GP内部错误信息
                object sev = null;
                string msgs = geoprocessor.GetMessages(ref sev);
                MessageBox.Show(msgs);
            }
        }

五、小结:如其说依据分割功能,不如说实现了选择功能,然后导出符合条件的要素。提供关键代码,一起学习共享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2172972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android界面控件概述

节选自《Android应用开发项目式教程》,机械工业出版社,2024年7月出版 做最简单的安卓入门教程,手把手视频、代码、答疑全配齐 控件是Android界面的重要组成单元,Android应用主要通过控件与用户交互,Android提供了非常…

YUView:YUV查看工具

文章目录 引言安装步骤使用YUView查看YUV数据播放与分析功能亮点注意事项 YUView的架构设计 引言 本文将介绍如何在Ubuntu 20.04上安装YUView,并分享其基本使用方法。 安装步骤 安装依赖项 在开始安装YUView前,先确保安装了所有必需的依赖包。打开终…

VGA/HDMI/DP接口和USB、串口通信协议

1、视频接口 开始之前我们先聊一聊数字信号和模拟信号,模拟信号和数字信号的不同之处在于它们所传输的信息的形式。模拟信号是一个连续的信号,可以以在无限小的时间内进行测量。数字信号则是以离散的形式进行传输,它的数值只能是离散的、有限…

每日一题学习笔记

给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点,提示&…

Unity中的GUIStyle错误:SerializedObject of SerializedProperty has been Disposed.

一运行就循环打印这个报错, 解决办法,每次改参数之后在HIerarchy中手动保存,就会停止循环打印,style中的字体也显示出来了, 或者 直接换个低版本的

如何使用C语言接入Doris数据库

如何使用C语言接入Doris数据库 一、环境准备1. 安装MySQL C API2. Doris数据库环境二、编写C语言接入代码1. 包含必要的头文件2. 编写连接和查询函数3. 编译和运行程序三、注意事项1. 安全性2. 错误处理3. 性能优化4. 兼容性5. 调试和日志记录四、结论Doris(之前称为Palo或Apa…

SQL高可用优化-优化SQL中distinct和Where条件对索引字段进行非空检查语句

最近做一个需求,关于SQL高可用优化,需要优化项目中的SQL,提升查询效率。 SQL高可用优化 一、优化SQL包含distinct场景二、优化SQL中Where条件中索引字段是否为NULL三、代码验证1. NodeMapper2. NodeService3. NodeController4.数据库数据5.项…

《西安交通大学学报》

投稿须知 感谢你对本刊的信任和支持。为了更好地为你服务,保证你的稿件能够顺利通过专家审稿,乃至及时录用发表,现将向本刊投稿时需要注意的事项罗列如下。   (1)本刊面向国内外公开征稿,校外作者的稿件要…

Linux系统文件的基础IO

目录 一、C语言的文件IO操作 二、系统调用的文件IO操作 1.open打开文件 2.close关闭文件 3.write写入文件 4.read读取文件 三、文件描述符 四、文件描述符的分配规则 五、终端文件 六、C语言中的文件IO对比系统调用文件IO 文件I/O(Input/Output&#xff0…

信安 实验2,3 使用Gpg4win进行数字签名、发送加密电子邮件

我发现了有些人喜欢静静看博客不聊天呐, 但是ta会点赞。 这样的人呢帅气低调有内涵, 美丽大方很优雅。 说的就是你, 不用再怀疑哦 实验2 使用Gpg4win进行数字签名 实验目的 通过实验,让学生掌握使用RSA算法实施数字签名的…

【1米C-SAR卫星】

1米C-SAR卫星 1米C-SAR卫星是我国自主研发的重要遥感卫星,主要用于海洋、陆地等观测任务,具备高分辨率、宽覆盖、多极化、多模式等特点。以下是对1米C-SAR卫星的详细介绍: 一、基本概况 发射时间:首颗1米C-SAR卫星于2021年11月2…

谁能给我一个ai现在无法替代画师的理由?

小白可做!全自动AI影视解说一键成片剪辑工具https://docs.qq.com/doc/DYnl6d0FLdHp0V2ll 如何看待现如今的AI绘画 哎呀玫瑰花来了,所有花式都要玩完了。 我相信大家在网上已经看过了太多惊为天人的AI绘画作品,有人抵制,有人支持&a…

PMP--二模--解题--141-150

文章目录 14.敏捷--创建敏捷环境--团队构成--混合项目环境,通常是自组织团队,即团队成员自己决定谁做什么,而不是项目经理决定。易混--常见场景--一个新人加入141、 [单选] 在一个混合项目的执行过程中,不得不更换一个开发人员。新…

【爱给网:登录_注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

JS对不同浏览器的检测问题

Navigator对象也称浏览器对象,该对象包含了浏览器的整体信息,如浏览器名称,版本号等。Navigator对象由Navigator浏览器率先使用,后来各方浏览器都开始支持Navigator对象,逐步成为一种标准。 一、Navigator对象的属性 …

检查索引对象中是否存在缺失值pandas.Index.hasnans

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 检查索引对象中是否存在缺失值 pandas.Index.hasnans [太阳]选择题 题目代码中执行结果是? import pandas as pd import numpy as np idx1 pd.Index([1, 2, np.nan, 4]) print…

破局证券公司结算业务系统信创国产化建设难点,探索实现路径与策略

数字化和国产化是金融IT行业目前的两大趋势。在金融行业,除了数字化以外,国产化也是核心趋势。信创建设从政府办公电脑开始,目的是借助政府的力量培养自主可控生态,而真正的繁荣还要靠行业大客户的支持,其中金融行业是…

spring揭秘24-springmvc02-5个重要组件

文章目录 【README】【1】HanderMapping-处理器映射容器【1.1】HanderMapping实现类【1.1.1】SimpleUrlHandlerMapping 【2】Controller(二级控制器)【2.1】AbstractController抽象控制器(控制器基类) 【3】ModelAndView(模型与视…

【x**3专享#2】编译 uboot 和 kernel 的文件结构

虚拟机交叉编译环境配置及内核编译步骤说明书 请先查看前篇文章内容 1. 获取虚拟机 IP 地址 打开虚拟机终端,执行以下命令查看虚拟机 IP 地址:ifconfig或者ip addr记录 eth0 或 ens33 等网络接口的 inet 后面的 IP 地址 2. 使用 Xftp 连接虚拟机 打开…

【C++拓展(四)】秋招建议与心得

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 C拓展 1. 前言2. 今年秋招形势到底如何?3. 学历…