【ArcGIS Pro二次开发】(37):图层一键应用村规、国空符号系统

news2024/11/20 12:34:20

在国空、村规的实际工作中,将要素类加载到地图中后,需要将图斑的符号系统修改成国空或村规的样式。一般的做法是使用样式库或已经做好的图层文件进行匹配,这个工具要实现的功能是直接应用特定的符号系统,其实用的方法也就是GP工具的【应用图层的符号设置】,并没有多少代码,但好处在于有了这个工具,就不用保存预制好的符号库或图层文件了,在任何场景下都可以运用自如。


一、要实现的功能

如上图所示,右击要素图层,点击【应用符号系统】按钮,在弹出的工具框中,选择要应用的符号类别,工具已经预制了2种符号【国空用地(市级)】和【村规用地】。

实际上随着工作的需要,以后可以增加更多的符号类别。

这里以【村规用地】为例,在右边根据输入要素的字段选择用地名称字段,点击执行即可。

生成结果如下:

以【国空用地(市级)】为例,生成结果如下:


二、实现流程

上面说过,实现流程很简单,就是应用了GP工具的【应用图层的符号设置】,基本没有什么细节可说的,直接看代码吧。

不过首先,需要先准备相对应的图层文件:

然后在代码中复制图层文件,并应用到图层即可:

                // 获取参数
                string field = combox_field.Text;
                // 符号系统选择
                string symbol = "";
                if (rb_gk.IsChecked == true) { symbol = "gk"; }
                else if (rb_cg.IsChecked == true) { symbol = "cg"; }

                await QueuedTask.Run(() =>
                {
                    // 获取工程默认文件夹位置
                    var def_path = Project.Current.HomeFolderPath;
                    // 获取当前地图
                    var map = MapView.Active.Map;
                    // 获取图层
                    FeatureLayer ly = MapView.Active.GetSelectedLayers().FirstOrDefault() as FeatureLayer;
                    // 如果选择的不是面要素或是无选择,则返回
                    if (ly.ShapeType != esriGeometryType.esriGeometryPolygon || ly == null)
                    {
                        MessageBox.Show("请选择一个面要素,否则不能执行!");
                        return;
                    }

                    if (symbol == "gk")
                    {
                        // 复制符号图层文件
                        ToolManager.CopyResourceFile(@"ApplySymbology.Data.Layers.国空用地.lyrx", def_path + @"\国空用地.lyrx");
                        // 应用符号系统
                        Arcpy.ApplySymbologyFromLayer(ly.Name, def_path + @"\国空用地.lyrx", "VALUE_FIELD 用地名称_统一 " + field);
                        File.Delete(def_path + @"\国空用地.lyrx");
                    }
                    else if (symbol == "cg")
                    {
                        // 复制符号图层文件
                        ToolManager.CopyResourceFile(@"ApplySymbology.Data.Layers.村规用地.lyrx", def_path + @"\村规用地.lyrx");
                        // 应用符号系统
                        Arcpy.ApplySymbologyFromLayer(ly.Name, def_path + @"\村规用地.lyrx", "VALUE_FIELD GHDLMC " + field);
                        File.Delete(def_path + @"\村规用地.lyrx");
                    }
                });

三、工程文件分享

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

ApplySymbologyicon-default.png?t=N4P3https://pan.baidu.com/s/1HwMyhiSm0jHGTu8WatlVKw?pwd=m1d3PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

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

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

相关文章

HTMLCSS Day02 CSS简介与选择器

文章目录 1.CSS32.语法2.1.CSS声明(CSS declarations)2.2.CSS声明块( CSS declaration blocks)2.3.CSS规则集2.4.CSS可读性- 空白( White space)- 注释( Comments)- 速记写法&#x…

【OpenMMLab AI实战营第二期】目标检测笔记

目标检测 目标检测的基本范式 划窗 使用卷积实现密集预测 锚框 多尺度检测与FPN 单阶段&无锚框检测器选讲 RPN YOLO、SSD Focal Loss与RetinaNet FCOS YOLO系列选讲 什么是目标检测 目标检测:给定一张图片,用矩形框框出所有感兴趣物体同…

【系统迁移:笔记本更换硬盘,不重装系统方法】

本人在使用笔记本的时候,C盘空间经常不够用。每次空间满了,就要清理磁盘,卸载一些软件。后来网上搜索一些C盘扩容的办法,列在下面了。去官方下载 diskgenius 软件,点击 here 跳转官网。 电脑型号:联想小新…

操作系统(3.5)--死锁概述

目录 资源问题 可重用性资源和消耗性资源 可抢占性资源和不可抢占性资源 计算机系统中的死锁 1.竞争不可抢占性资源 2.竞争可消耗资源产生死锁 3.进程推进顺序不当引发死锁 死锁的定义、必要条件和处理方法 死锁的定义 产生死锁的必要条件 处理死锁的基本方法 资源…

华为OD机试真题(JavaScript),挑选字符串(100%通过+复盘思路)

一、题目描述 给定a-z,26个英文字母小写字符串组成的字符串A和B,其中A可能存在重复字母,B不会存在重复字母,现从字符串A中按规则挑选一些字母可以组成字符串B挑选规则如下: 同一个位置的字母只能挑选一次&#xff1b…

JS reduce方法对后台数据的处理案例(秒解决)

目录 一、前言 二、案例1 三、案例二 四、小结 一、前言 在我们项目开发阶段,当后端传回来的数据不太理想或者不好直接使用的话,那么此时我们就必须对数据进行处理,这次我就遇到了一种情况,当后端返回如下格式的数据&#xff…

Rust每日一练(Leetday0024) 爬楼梯、简化路径、编辑距离

目录 70. 爬楼梯 Climbing Stairs 🌟 71. 简化路径 Simplify Path 🌟🌟 72. 编辑距离 Edit Distance 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专…

dubbo源码阅读之-java spi, dubbo spi 和 Spring spi 到底有啥区别

java spi, dubbo spi 和 Spring spi 到底有啥区别 SPIJava SPI案例优缺点 Spring SPIDubbo SPI概述案例源码分析 自己实现一个SPI SPI SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由…

北京通信展的精华内容,都在这里!(中篇)

█ 中国移动 中国第一大运营商: 中国移动展出的内容非常非常多,既有应用,也有技术干货: 通感一体化: 6G: 猜猜这是什么: 揭晓答案: 1:2的卫星单元模型: RIS智能超表面&am…

HNU人工智能实验四-基于YOLOV3-DarkNet50的篮球检测模型

实验四:深度学习算法及应用-基于YOLOV3-DarkNet50的篮球检测模型 项目文档工程:https://github.com/mindspore-ai/mindspore-21-days-tutorials/tree/main/ 前言 这个实验要求做一个深度学习项目,做头歌的或者自己在华为云找一个都行&…

华为OD机试真题 Java 实现【最长回文子串】【牛客练习题】

一、题目描述 给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。 所谓回文串,指左右对称的字符串。 所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串 数据范围:字符串长度1≤s…

华为OD机试真题 JavaScript 实现【最长回文子串】【牛客练习题】

一、题目描述 给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。 所谓回文串,指左右对称的字符串。 所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串 数据范围:字符串长度1≤s…

锤子眼里全是钉?谈如何对现有系统进行微服务改造

1 什么是微服务架构? 微服务架构,主要是一种思想,并非具体的技术、框架、语言等。核心在于将现有系统拆分为功能明确,内聚性强,职责单一的微小部分,以服务形式对外提供,从而将原来的复杂大系统…

SpringBoot 通过@Profile注解配置多环境

参考资料 Springboot中的Profile注解 目录 一. 使用场景二. 前期准备三. Profile注解作用于类上3.1 配置类3.2 效果 四. Profile注解作用于方法上4.1 定义一个生产环境的注解4.2 配置类4.3 效果 一. 使用场景 在Spring中,可以使用配置文件的方式来指定不同环境下所…

让AI写今年高考作文,满分60你给AI打多少分呢?

随着高考的落幕,各地高考作文已成为我们讨论的话题。 下面是2023年全国甲卷作文题目 我们就让AI根据要求,写上两篇作文。作文标题也是AI起的 一 、① 标题:与时间赛跑,不为时间所困 ​ 时间,这位无情的审判长&#…

知识点滴 - Tumble test和Drop test

翻滚测试(Tumble test)和跌落测试(Drop test)是十分重要的方法,用于评估产品的维持功能的能力,针对的是当产品在终端用户手中的整个生命周期中经历许多碰撞和刮擦的情况。 跌落测试的随机性较强,而跌落测试可以控制跌落方向、撞击点等。 翻滚…

将一个正整数分解质因数(Java)

题目:将一个正整数分解质因数。例如:输入1023,打印出10233*11*31。 目录 1、解题思路 2、程序代码 3、程序输出 1、解题思路 从最小的质数开始,不断地将输入的正整数进行分解,直到无法再分解为止。具体实现方法为:从…

Flutter调用Rust代码操作指南

在之前的利用Rust与Flutter开发一款小工具文章中,我们使用Rust代码实现了一个简单的WebSocket发送功能。也在Rust库交叉编译以及在Android与iOS使用这篇中介绍了Rust库的打包以及双端的使用。 今天我们继续用之前WebSocket的代码举例,来介绍如何在Flutt…

chatgpt赋能python:Python怎么取出换行的数据?

Python怎么取出换行的数据? 在数据分析和处理中,我们常常需要从文件中读取数据,特别是当数据量很大时更是如此。在Python中,读取文本文件中的数据很简单,但是有时候读取的文本文件中可能含有换行符,这可能…

5.DIY可视化-拖拽设计1天搞定主流小程序-公告管理

1.DIY可视化-拖拽设计1天搞定主流小程序-公告管理 公告管理-本教程均在第一节中项目启动下操作 1.DIY可视化-拖拽设计1天搞定主流小程序-公告管理2.创建数据表执行: php think diygw:tableandapi oneHdp 3. 复制幻灯片界面进行编辑4.修改后台API5.富文本添加6.验证 :访问url : …