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

news/2024/11/30 0:44:55/

在国空、村规的实际工作中,将要素类加载到地图中后,需要将图斑的符号系统修改成国空或村规的样式。一般的做法是使用样式库或已经做好的图层文件进行匹配,这个工具要实现的功能是直接应用特定的符号系统,其实用的方法也就是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.ppmy.cn/news/324234.html

相关文章

【Linux】按键驱动程序

【Linux】按键驱动程序 前言: 一、按键驱动程序的背景知识 1.1 查询方式 1.2 休眠-唤醒方式 1.3 poll方式 1.4 异步通知 1.5 总结 二、按键驱动程序的框架 三、按键驱动程序实战 3.1 头文件(button_drv.h) 3.2 驱动程序&#xf…

获取Windows默认壁纸图片,用于添加文字再设为壁纸

一、获取图片:隐藏桌面图标、隐藏任务栏 二、保存:可通过键盘上的PRTSC键保存至粘贴板,或通过Windows键PRTSC保存至此电脑->图片->屏幕截图。

动态壁纸安卓_梦象动态壁纸下载

梦象动态壁纸是拥有丰富壁纸资源的app,各种壁纸资源免费提供下载使用,根据你的手机自动整理尺寸。梦象动态壁纸还能设置省点模式,让炫酷壁纸节省手机更多电量,需要的朋友可以点击下载! 梦象动态壁纸特色 1、壁纸资源丰富&#xff…

深入理解Android壁纸

本章主要内容: 讨论动态壁纸的实现。 在动态壁纸的基础上讨论静态壁纸的实现。 讨论WMS对壁纸窗口所做的特殊处理。 本章涉及的源代码文件名及位置: WallpaperManagerService.java frameworks/base/services/java/com/android/server/WallpaperMan…

粘包和半包的解决

粘包产生 public class HelloWordServer {static final Logger log LoggerFactory.getLogger(HelloWordServer.class);public static void main(String[] args) {NioEventLoopGroup boss new NioEventLoopGroup(1);NioEventLoopGroup worker new NioEventLoopGroup();try {…

抖音文字时钟壁纸html,抖音文字时钟app

抖音文字时钟app是一款蛮火蛮有趣的复古罗盘时钟应用,喜欢刷抖音的用户是不是在抖音上看到了这些的时钟,你是不是对这个罗盘产生了兴趣,今天小编为你提供了设置这个时钟的app,当前只有安卓版,苹果版暂未上线&#xff0…

抖音文字时钟壁纸html源码,这次要把抖音网红文字时钟设置为壁纸了~

原标题:这次要把抖音网红文字时钟设置为壁纸了~ 本文作者 作者:二娃_ https://juejin.im/post/5d52aea86fb9a06ae61aad5b 还记得上篇吗?我们先实现了抖音网红文字时钟的自定义 View 实现: 抖音上炫酷的网红文字时钟 1 概述 源码地址 https://github.com/drawf/SourceSet/bl…

抖音文字时钟壁纸html,抖音文字时钟

抖音文字时钟是一款为最近非常火的珍惜时间打造的钟表,有记录时间的功能也有很强大的警示作用,告诉我们时间的重要性,它有很多的模式可以调节使用,展现出自己喜欢的需要的时钟模式来,有需要的用户们就来这里下载吧。 温…