【ArcGIS Pro二次开发】(29):村庄规划生成空间功能结构调整表

news2024/12/24 0:06:51

根据现在村规成果要求,【空间功能结构调整表】是必需的。

以福建省为例,它长这样:

下面就来实现从现状用地和规划用地导出这样的Excel表格。


一、要实现的功能

如上图所示,点击【汇总村庄空间功能结构调整表】工具,选择【现状用地】和【规划用地】图层,选择要保存输出的Excel文件路径,再点击【执行】即可。

生成结果如下:


二、实现流程

工具的实现流程和我的上一篇文章很像:

【ArcGIS Pro二次开发】(28):用地图斑导出用地用海汇总表

流程长但不复杂,更重要的是Excel模板和输入【现状用地、规划用地】的准备。

1、准备Excel模板

一、【空间功能结构调整表】模板

首先是要输出表的模板,需要输入的单元格包括面积、比重、和面积增减。这里的大部分面积值由用地汇总而来,部分合计值、比重以及面积增减值就在Excel里用公式计算。另外,还需要一个参照列,用来属性映射。

二、【用地用海代码_村庄功能】属性映射表

这个表格是作为用地用海代码向村庄功能映射的参照表,将用地用海代码转换成村庄功能代码。

2、准备输入的【现状用地】和【规划用地】

一、【现状用地】

输入的【现状用地】图斑需要注意要有2个字段:【JQDLBM】和【CZCSXM】。

【JQDLBM】是村规入库的标准代码,即基期地类编码。

【CZCSXM】是三调自带的字段,用来表示三调用地的城镇村属性。201、201A是城市建设用地,202、202A是建制镇建设用地,203、203A是村庄建设用地。这里提取【201、201A、202、202A】作为城镇用地。

二、【规划用地】

输入的【规划用地】图斑需要注意要有2个字段:【GHDLBM】和【SSBJLX】。

【GHDLBM】和【SSBJLX】都是村规入库的标准代码。

【GHDLBM】即规划地类编码。

【SSBJLX】用来表示规划用地的城镇村属性,字段值为【Z】则表示该地块为城镇用地。这里为了照顾输入时的误差,字段值为小写的【z】也可以被认得。

3、主要代码

实现功能的主要流程如下:

            // 获取默认数据库
            string init_gdb = Project.Current.DefaultGeodatabasePath;
            // 获取默认文件夹位置
            string init_path = Project.Current.HomeFolderPath;
            
            // 获取参数
            string yd_xz = combox_fc_xz.Text;           // 现状用地
            string yd_gh = combox_fc_gh.Text;         // 规划用地
            string excel_GN = init_path + @"\用地用海代码_村庄功能.xlsx";    // 村庄功能映射Excel
            string excel_TZB = textExcelPath.Text;      // 输出空间功能结构调整表Excel
            string output_table_xz = init_gdb + @"\output_table_xz";
            string output_table_gh = init_gdb + @"\output_table_gh";
            string statistics_fields = "Shape_Area SUM";
            string field_xz = "JQDLBM";
            string field_gh = "GHDLBM";
            string field_GN = "村庄功能";

            // 复制模板Excel和输出结果Excel
            ToolManager.CopyResourceFile(@"CCTool.Excel.用地用海代码_村庄功能.xlsx", excel_GN);
            ToolManager.CopyResourceFile(@"CCTool.Excel.【模板】空间功能结构调整表.xlsx", excel_TZB);
            // 现状、规划用地功能映射
            GN_Mapper(yd_xz, field_xz, field_GN, excel_GN);
            GN_Mapper(yd_gh, field_gh, field_GN, excel_GN);
            // 统计面积
            ToolManager.MultiStatistics(yd_xz, output_table_xz, statistics_fields, new List<string>() { field_GN }, "总计", 1, true);
            ToolManager.MultiStatistics(yd_gh, output_table_gh, statistics_fields, new List<string>() { field_GN }, "总计", 1, true);
            // 删除中间字段
            Arcpy.DeleteField(yd_xz, field_GN);
            Arcpy.DeleteField(yd_gh, field_GN);
            // 属性映射至Excel
            ToolManager.ExcelAttributeMapper(excel_TZB + @"\sheet1$", 13, 6, "output_table_xz", @"分组字段", "SUM_Shape_Area", 5);
            ToolManager.ExcelAttributeMapper(excel_TZB + @"\sheet1$", 13, 8, "output_table_gh", @"分组字段", "SUM_Shape_Area", 5);
            // 删除0值行
            ToolManager.Delete0Row(excel_TZB + @"\sheet1$", new List<int>() {6, 8}, 5);
            // 删除参照列
            ToolManager.DeleteColumns(excel_TZB + @"\sheet1$", new List<int>() { 13 });
            // 删除中间数据
            Arcpy.Delect(new List<string>() { output_table_xz, output_table_gh });

流程里涉及到的复制Excel、属性映射、统计面积、Excel属性映射、删除0值行等功能,可以在以往的文章里查到,具体可以看上一篇文章,或在文章末尾提供的工程文件里查看。实在也没什么好讲的。

PS:这次提供的工程文件和别的工具合在一起了。代码里的功能嵌套越来越多,分离开来反而很麻烦,就将整个工具包一块分享了。


三、工程文件分享

最后,放上工程文件的链接:

StatisticVillageicon-default.png?t=N3I4https://pan.baidu.com/s/1nsjUHqRqfogHrjis5pXDXw?pwd=dwsv

PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

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

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

相关文章

Day1--ARM1

用for循环实现1~100相加

百度翻译可以翻译页面

百度翻译可以翻译页面 例如&#xff1a;输入网址 https://www.baidu.com&#xff0c;点击翻译即可。

ChatGPT背后的核心技术报告(附下载)

输入几个简单的关键词&#xff0c;AI能帮你生成一篇短篇小说甚至是专业论文。最近大火的ChatGPT在邮件撰写、文本翻译、代码编写等任务上强大表现&#xff0c;让埃隆马斯克都声称感受到了AI的“危险”。ChatGPT的计算逻辑来自于一个名为transformer的算法&#xff0c;它来源于2…

穿透技术及Apache教学

首先在这里因为很多人没学过内网穿透以及虚拟ip&#xff0c;因此给大家出一套小白网络隧道教学&#xff08;Sunny-Ngrok&#xff09;如下&#xff1a; Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 进入文档第一步&#xff1a;注册账号&#xff0c;并登录进入 第二步&a…

Eye of the Temple:在4平米玩出大空间VR效果的秘诀

卧室只有4平米&#xff0c;能在VR中模拟森林等大空间场景吗&#xff1f;仅依靠视觉也许可以&#xff0c;但显然你很难走到森林尽头。不过&#xff0c;通过重定向等视觉欺骗&#xff0c;也许你可以通过在房间内“绕圈”&#xff0c;来模拟在虚拟空间中无尽行走的效果。比如热门大…

企业工程管理系统源码之提高工程项目管理软件的效率

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中&#xff0c;管理不畅以及不良的项目执行&#xff0c;往往会导致项目延期、成本上升、回款拖后&#xff0c;最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统&#xff0c;确保…

全景 I 0基础学习VR全景制作,第25章热点功能-接入无为

本期为大家带来蛙色VR平台&#xff0c;热点功能—接入类型为&#xff1a;无功能操作。 功能位置示意 热点&#xff0c;指在全景作品中添加各种类型图标的按钮&#xff0c;引导用户通过按钮产生更多的交互&#xff0c;增加用户的多元化体验。 热点接入类型为&#xff1a;无&…

【安全知识】——LInux的shell反弹姿势合集(更新中)

作者名&#xff1a;白昼安全 主页面链接&#xff1a; 主页传送门 座右铭&#xff1a; 不要让时代的悲哀成为你的悲哀专研方向&#xff1a; web安全&#xff0c;后渗透技术每日鸡汤&#xff1a; 宇宙有宇宙的规律&#xff0c;我也有我的坚持 当我们拿到一台LINUX主机的权限时&am…

java版企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…

线下沙龙丨瑞云“遇·建”-上海站建筑可视化技术沙龙活动圆满落幕!

艺术挑战技术&#xff0c;技术启发艺术&#xff0c;视觉行业的技术日新月异&#xff0c;实时渲染、云制作/云协作以及AIGC等创新技术&#xff0c;不仅能够帮助视觉行业同仁落实愿景&#xff0c;也实现了更加精简的工作流程。 2023年4月26日&#xff0c;深圳市瑞云科技股份有限公…

ChatGPT对健康医疗意味着什么?

ChatGPT可能是有史以来增长最快的消费者互联网应用程序。OpenAI开发的人工智能聊天机器人于11月推出&#xff0c;仅两个月就达到了1亿用户。它空前的流行可归因于其令人印象深刻的功能。 ChatGPT可以做什么&#xff0c;为什么如此受欢迎&#xff1f; 人工智能曾经是科幻小说中…

ControlNet: 控制扩散模型的魔法

出品人&#xff1a;Towhee 技术团队 作者&#xff1a;王翔宇 从去年以来 AIGC 的技术不断冲击人们的想象力&#xff0c;针对图片的扩散模型&#xff08;midjourney 和 stable diffusion&#xff09;已经可以在给于 prompt 下生成非常吸引人的图像&#xff0c;但是如果希望以别…

网络安全论坛哪里找?

下面给大家介绍一些比较常见的国内安全论坛&#xff1a; 1、黑客基地&#xff1a;http://www.hackbase.com/ 黑基网&#xff08;WWW.HACKBASE.NET&#xff09;成立于2003年&#xff0c;由IT精英和白帽黑客共同发起创立&#xff0c;致力于打造高端IT与网络安全的技术交流平台&…

数据结构及算法应用

第十四章、数据结构及算法应用 1、分治法 对于一个规模为n的问题&#xff0c;若该问题可以容易地解决&#xff08;比如说规模n较小&#xff09;则直接解决&#xff1b;否则将其分解为k个规模较小的子问题&#xff0c;这些子问题互相独立且与原问题形式相同&#xff0c;递归地…

janus videoroom 对接freeswitch conference 篇1

janus videoroom 实时性非常好&#xff0c; freeswitch conference的功能也很多 &#xff0c;有没办法集成到一块呢 让很多sip 视频终端也能显示到videoroom 里面&#xff0c; 实现方式要不两种 1.改源码实现 &#xff08;本文忽略 难度高&#xff09; 2.找一个videoroom管…

什么是JS事件流

什么是JS事件流? 一&#xff1a;事件冒泡 <!DOCTYPE html> <html lang"en"> <head><title>事件冒泡例子</title> </head> <body><div id"box">点击我</div> </body> </html>上述的代…

需求管理(三)需求过程

一、需求规格说明 1.1需求规格说明概述 需求获取的目标是得到用户的需求——收集需求信息 需求分析的目标是更深刻的理解用户的需求——界定能够让用户满意的解决方案和准则 需求规格说明的目标是定义用户的需求——准确描述其需求和解决方案 需求规格说明文档的撰写流程如下图…

DHCP+链路聚合+NAT+ACL小型实验

实验要求: 1.按照拓扑图上标识规划网络。 2.使用0SPF协议进程100实现ISP互通。 3.私网内PC属于VLAN1O, FTP Server属于VLAN2O,网关分 别为所连接的接入交换机&#xff0c;其中PC要求通过DHCP动态获取 4:私网内部所有交换机都为三层交换机&#xff0c;请合理规划VLAN&#…

关于对tinymce富文本编辑器使用的心得

本文分为一下几个功能&#xff1a; tinymce初始化的一些配置在工具栏和文本中间插入特定的标题和摘要自定义工具栏按钮&#xff0c;实现特定功能上传图片时去掉网络上传功能粘贴过来的图片实现默认上传给图片添加水印功能实现一键排版 一、tinymce初始化的一些配置 1、首先需要…

机械大专生能学会云计算吗,完全零基础的

机械大专生能学会云计算吗&#xff0c;完全零基础的 正常来说&#xff0c;大专及以上学历都能学会云计算&#xff0c;但是会和满足就业需求是两回事哈。如果你想通过学习就业&#xff0c;就需要根据当下相关岗位的普遍技术需求以及其他方面的要求&#xff0c;来针对性的学习和提…