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

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
ArcGIS Pro二次开发是指使用ArcGIS Pro软件进行自定义功能开发的过程。对于初学者而言,开始二次开发可能感到无从入手,因为中文资料较少,官方文档对于英文不熟悉的人来说可能不太友好。 要开始ArcGIS Pro二次开发,你可以按照以下步骤进行操作: 1. 首先,以管理员身份运行Visual Studio 2019。如果没有安装Visual Studio 2019,你需要先下载并安装它。 2. 在Visual Studio中,右键项目名称,选择"添加",然后选择"新建项"。 3. 在"新建项"下拉菜单中,选择"ArcGIS",然后选择"ArcGIS Pro Add-ins",再选择"ArcGIS Pro按钮",最后点击"添加"。 4. 接下来,配置新项目。在Visual Studio中,点击"文件",选择"新建",然后选择"项目"。 5. 在"新建项目"对话框中,选择"C#"作为语言,选择"Windows"作为平台,然后选择"ArcGIS Pro SDK"。在项目类型中选择"ArcGIS Pro模块加载项",然后点击"下一步"。 6. 设置新项目的配置,然后点击"创建"。等待项目创建完成。 通过以上步骤,你就可以开始进行ArcGIS Pro二次开发了。你可以根据你的需求,使用C#编程语言进行开发,并且利用ArcGIS Pro SDK提供的功能来扩展ArcGIS Pro软件的功能。 希望这些步骤能够帮助你入门ArcGIS Pro二次开发。如果你遇到了其他问题或需要更多详细的指导,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【ArcGIS Pro二次开发】系列学习笔记,持续更新,记得收藏](https://blog.csdn.net/xcc34452366/article/details/129223703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ArcGIS Pro二次开发环境配置及项目创建示例](https://blog.csdn.net/wsywsy00/article/details/128550006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

规划GIS会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值