前言
本教程只提供实现思路
和关键api
,源码算上写了注释差不多600行,因为加入了多线程,不怎么稳定,暂时就不放出来了,打磨打磨再说。
完整实战:【原创】记一次使用数据驱动出图,顺手开发了一个动态表格生成脚本
第一次用py2开发,和3差别还是挺大的
脚本功能
- 生成当前页面的数据表格
- 批量导出页面,且同时生成表格,导出成mxd、pdf,jpg等各种格式
- 使用多线程实现同时导出多个页面,如理100多个页面的时候非常有用
实现思路
- 创建一个方框元素,用来决定表格在哪里生成,表格颜色,线框颜色等
- 创建一个文本元素,用来填充数据
- 获取当前视图的集合范围,将当前范围内显示的数据提取出来
- 根据提取的数据生成表格
- 导出需要的格式
- 遍历整个数据驱动,每一页都生成表格和导出数据
- 多线程同时导出
1、生成两个复制元素
- 首先是手动创建方框元素,借助方框元素来设定后面数据表格要生成在什么位置,表格的边框、背景样色,还有表格的大小。
- 创建文本元素,用于给脚本渲染数据内容
- 创建后给两个元素都指定一个名字,至此无法使用脚本执行的部分就完成,剩下的工作就开始调用api实现
- 通过
arcpy.mapping.ListLayoutElements
函数,对方框元素和文本元素进行实例
2、识别数据都出现在哪些视图范围内,并提取
获取目标数据集,获取当前视图显示的范围,判断哪些数据集中哪些元素出现在了当前视图内,可以理解成当前视图数据的几何显示范围内包含了那几个目标数据,然后提取包含数据的对应字段,提取出当前页面数据
- 获取当前视图出现的目标数据集
# 数据图层或者shp文件
# 只要是 SearchCursor 支持的输入即可
target = '东安江左岸'
# 要提取数据的字段
fileds =