ArcGIS 每天一个高级制图技巧:9 制图表达( 下)使用Python操作制图表达规则
前言:与普通符号系统一样,事先制作好的制图表达规则也是可以复用的,同时已经存在的制图表达也是可以通过Python进行一定的操作。本节讲讲如何使用Python操作制图表达规则。检测制图表达
对于涉及多图层、有判定的操作,事先将要素的制图表达及其名称暴露出来是有必要的。使用 Describe 函数,可以暴露子元素成员(制图表达可以看做是图层的子元素成员),如下所示:
注释①:运行结果显示其制图表达的名称为 repre_test_Rep;输出结果为空表示不存在子元素。注释②:可以输出子元素的类型,如果子元素为制图表达,则输出 RepresentationClass使用Python复用制图表达规则
使用 Python 复用规则当然要调用 ArcPy 包啦。1. 样式规则lyr和符号系统一样,如果要复用制图表达规则的话,也是需要一个事先制作好的 lyr 文件。不同于之前使用 arcpy.updatelayer 方法,在这里我们只能使用 arcpy.AddRepresentation_cartography 方法。同时,我们保存的lyr不能单独使用,由于制图表达规则是存放于数据库中的,所以 lyr 文件需要配合保存了 lyr 制图表达规则的数据库一同使用。怎么找到存放制图表达规则的数据库呢:lyr 是从单独的要素保存下来的,那么存放原要素的数据库中就保存有其制图表达规则。如下图所示, repre_test2.lyr 文件是我们的样式文件,其原文件存放在 制图表达测试.gdb 中(最后有相关文件下载)。关于如何保存为 lyr 文件,请查看该篇文章《ArcGIS 每天一个高级制图技巧:5 lyr和UpdateLayer方法实现样式复用》
2. 复用使用 arcpy.AddRepresentation_cartography 方法。
在第19-21行:引入了 lyr 文件。在第23行:使用 arcpy.DropRepresentation_cartography 方法删除了该要素的制图表达。在第25行:添加新的制图表达,应用指定的制图表达规则。这是原始的制图表达效果图片:
运行代码及效果的演示视频: arcpy.AddRepresentation_cartography官方文档:https://desktop.arcgis.com/zh-cn/arcmap/10.3/tools/cartography-toolbox/add-representation.htm在已有制图表达规则的基础上指定制图表达规则
以下讲讲在已经有制图表达的要素中,在不删除原制图表达的情况下新建一个制图表达会发生的情况。当前图层已有制图表达 repre_test_Rep,规则是波形。
如果名字相同,会出现以下错误,这也是为什么要讲 检测制图表达的原因。
设置不同名字 representation_name,规则设置为平滑,会生成另外一个制图表达:
选中点击确认方能应用新的规则后显示如下
结尾
本章节使用的数据库、源代码等文件:链接:https://pan.baidu.com/s/1WgMm3VyZlRuxvb-cfuKcwA提取码:y7j7欢迎互相交流,共同进步