当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(52):布局导出图片(批量)

在ArcGIS Pro中设定好布局后,可以直接导出为各种类型的图片。

这是很基本的功能,但是如果你的布局很多,一张一张导图就有点费劲。

之前有网友提出希望可以批量导图,要实现起来并不难,于是就做了这个工具。


一、要实现的功能

如上图所示,点击【制图相关】面板下【导出布局(批量)】按钮,弹出工具框如下:

输入参数中:

1、要导出图片的文件夹位置。

2、导出图片类型。这里预置了PNG,JPG和PDF这三种常用的图片类型,如果还有需求可以再添加。

3、导出图片分辨率,默认设置为300,可手动调整。

示例工程中有2个布局,点击执行后生成结果如下:


二、实现流程

工具的核心代码并不多。

首先,获取当前工程的所有布局:

                // 获取当前工程中的所有LayoutProjectItemIEnumerable<LayoutProjectItem> layoutProjects = Project.Current.GetItems<LayoutProjectItem>();await QueuedTask.Run(() =>{foreach (LayoutProjectItem layoutProject in layoutProjects){// 获取layout Layout layout = layoutProject.GetLayout();// TODO});

然后就可以导出了,不过要先设置好导出的图片格式:

                        // JPG图片属性JPEGFormat JPG = new JPEGFormat(){HasWorldFile = true,Resolution = dpi,               // 分辨率OutputFileName = filePath + @"\" + layout.Name + @".jpg",      // 输出路径};// PNG图片属性PNGFormat PNG = new PNGFormat(){HasWorldFile = true,Resolution = dpi,               // 分辨率OutputFileName = filePath + @"\" + layout.Name + @".png",      // 输出路径};// PDF图片属性PDFFormat PDF = new PDFFormat(){OutputFileName = filePath + @"\" + layout.Name + @".pdf",      // 输出路径Resolution = dpi,               // 分辨率DoCompressVectorGraphics = true,   // 是否压缩矢量图形DoEmbedFonts = true,            // 是否执行嵌入字体         HasGeoRefInfo = true,             // 是否具有地理参考信息ImageCompression = ImageCompression.Adaptive,   // 图形压缩.自适应ImageQuality = ImageQuality.Best,           // 图形质量.最好LayersAndAttributes = LayersAndAttributes.LayersAndAttributes   // 图层  属性};

导出时需要判断一下图片格式:

                        // 导出JPGif (pic_type == "jpg"){layout.Export(JPG);}// 导出PNGif (pic_type == "png"){layout.Export(PNG);}// 导出PDFif (pic_type == "pdf"){layout.Export(PDF);}

以上便实现了工具的主要功能。


三、工具文件分享

我把工具都集合成工具箱,不再单独放单个工具,可以到这里下载完整工具箱,会不断更新:

【ArcGIS Pro二次开发】:CC工具箱https://blog.csdn.net/xcc34452366/article/details/131506345PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

http://www.lryc.cn/news/97173.html

相关文章:

  • Git拉取远程分支并创建本地分支
  • OSI七层模型——物理层
  • 【NLP】使用变压器(tranformer)和自动编码器
  • 广州华锐互动:水利数字孪生智能管理系统的特色
  • php使用chatGPT生成一些东西做一个记录
  • 轻量级Web报表工具ActiveReportsJS全新发布v4.0,支持集成更多前端框架!
  • 听GPT 讲K8s源代码--pkg(七)
  • STM32MP157驱动开发——按键驱动(线程化处理)
  • 探究HTTP代理爬虫的反爬虫策略
  • 短视频去水印小程序,一键部署你的小程序,可开流量主,实现睡后收入
  • 通讯录系统
  • 14:00面试,14:06就出来了,问的问题有点变态。。。
  • F5 LTM 知识点和实验 3-负载均衡中的负载算法
  • 多线程(JavaEE初阶系列2)
  • Ubuntu20.04点Ubuntu software没反应,打不开的解决方案(Ubuntu笔记)
  • 力扣1114.按序打印-----题目解析
  • Centos7.9安全部署_防火墙配置_端口配置_协议配置_IP配置_全部亲测---记录022_大数据工作笔记0182
  • Tik Tok海外公会是什么?
  • elasticsearch批量导入问题
  • SAP安装笔记
  • 速速收藏!程序员副业赚钱的8种模式
  • 2、基于redis实现分布式锁
  • 【问题记录】Ubuntu 22.04 环境下,程序报:段错误(核心已转储)怎么使用 core 文件和GDB调试器 解决?
  • 9 Linux实操篇-实用指令
  • Hbase基础概念
  • JTS-Angle角度类
  • pytest---环境切换(base-url)
  • linux跑代码,程序终止了,但资源没有释放。
  • 数据结构--线性表2-1
  • 网访问内网机器:基于frp的内网穿透