要素轮廓线掩膜 (制图)
摘要
在输入图层中的符号化要素周围按照指定的距离和形状创建掩膜面。
用法
该工具接受点、线和面要素图层以及地理数据库注记图层作为输入。
-
创建掩膜时,了解下面这一点非常重要:向地图添加掩膜将增加地图的复杂性,从而降低地图的绘制速度并影响最终的打印和导出。通常,为地图创建掩膜时要考虑三个方面:(1) 掩膜的数量,(2) 掩膜的复杂性,以及 (3) 是否用于对用标记或线符号填充的面要素执行掩膜操作。掩膜数量的增加、掩膜复杂性的提高和/或对标记或面填充符号执行掩膜操作都将导致屏幕上的绘制速度降低。此外,打印和导出两种操作的性能也会变得很糟,甚至无法生成有效的输出,这是因为:首先,打印并导出含有掩膜的地图需要进行大量的处理;其次,如何使用图形文件格式存储具有许多复杂掩膜的地图导出结果受到已知的限制。
-
设法提高绘图性能、打印和导出性能以及可靠性时,要遵守的最重要的准则就是:根据地图的用途,使用必要的而且是最简单的掩膜。特别是对注记文本执行掩膜操作时,您将发现 CONVEX_HULL 类型的掩膜足以实现许多地图用途。如果需要更为详细的文本掩膜,请使用 EXACT_SIMPLIFIED 类型。通常,在相对较大的地图上对大量文本执行掩膜操作时,应避免使用 EXACT 类型的掩膜,因为 EXACT 类型的掩膜会创建过多的复杂掩膜以至于无法高效地生成有效的输出。
-
边距值可使用页面单位或地图单位指定。通常,需要使用页面单位来指定边距值。
所选的单位不同,对边距值单位的解释也不同。如果选择磅、英寸、毫米或厘米,则掩膜将通过在页面空间中计算出的边距来创建(可将边距视为纸上测量出的距离)。参考比例的参数值会参与此计算。
如果边距选用了其他单位,则掩膜将通过在地图空间中计算出的边距来创建(可将边距视为地球上测量出的真实距离)。这种情况下,参考比例的参数值不会参与计算。
-
如果边距为 0 或负值,则将创建掩膜。如果边距大小为 0,将创建表示符号化要素的准确形状的面要素。如果边距为负,则面将小于符号化要素。通常,将边距值指定为大于 0 以产生所需的掩膜效果。
-
如果输入图层是注记图层,则参考比例将自动设置为图层的要素类的参考比例,以确保掩膜计算的准确性。
-
对动态投影的注记执行掩膜操作时,应通过空间参考参数对地图的空间参考进行适当的设置,然后利用地图的空间参考来创建掩膜。对文本进行动态投影时,保留了可读性,所以在不同的投影中,文本所在的空间区域可能存在差异。
-
注记要素的掩膜是字体特定的。使用含文本的掩膜时,一定要保证屏幕和输出所使用的字体相同。为此,请选择将字体嵌入到矢量输出中或下载 SoftFonts 到打印机或绘图机。
语法
参数 | 说明 | 数据类型 |
input_layer |
创建掩膜所使用的符号化输入图层。 | Layer |
output_fc |
含有掩膜要素的要素类。 | Feature Class |
reference_scale |
用于在使用页面单位指定掩膜时计算掩膜几何的参考比例。该比例通常是地图的参考比例。 | Double |
spatial_reference |
待创建掩膜面的空间参考。该空间参考不是要分配给输出要素类的空间参考。它是地图的空间参考;由于投影要素时,符号系统的位置可能发生变化,所以将在该空间参考的地图中使用掩膜面。 | Spatial Reference |
margin |
在用于创建掩膜面的符号化输入要素周围的间距(使用页面单位)。通常,创建掩膜面时,在符号的周围留有小边距,以增强显示效果。边距值可使用页面单位或地图单位指定。通常,需要使用页面单位来指定边距值。 所选的单位不同,对边距值单位的解释也不同。如果选择磅、英寸、毫米或厘米,则掩膜将通过在页面空间中计算出的边距来创建(可将边距视为纸上测量出的距离)。参考比例的参数值会参与此计算。 如果边距选用了其他单位,则掩膜将通过在地图空间中计算出的边距来创建(可将边距视为地球上测量出的真实距离)。这种情况下,参考比例的参数值不会参与计算。 | Linear unit |
method |
所创建的掩膜几何的类型。分为四种:
| String |
mask_for_non_placed_anno |
指定是否为未放置的注记创建掩膜。该选项仅在对地理数据库注记图层执行掩膜操作时应用。
| String |
attributes (可选) |
确定哪些属性将从输入要素传递到输出要素。
| String |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 FeatureOutlineMasks 工具。
import arcpy from arcpy import env env.workspace = "C:/data" import arcpy prjFile = "c:/Program Files/ArcGIS/Desktop10.0/Coordinate Systems/Projected Coordinate Systems" + \ "/Continental/North America/USA Contiguous Equidistant Conic.prj" sr = arcpy.SpatialReference(prjFile) arcpy.FeatureOutlineMasks_cartography("C:/data/cartography.gdb/transportation/roads", "C:/data/cartography.gdb/transportation/fom_polys", "25000", sr, "5 meters","EXACT_SIMPLIFIED", "ALL_FEATURES", "ALL")
此独立脚本显示的是使用 FeatureOutlineMasks 工具的示例。
# Name: FeatureOutlineMasks_standalone_script.py # Description: Creates mask polygons at a specified distance and shape around symbolized features. # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables input_layer = "C:/data/roads.lyr" output_fc = "C:/data/cartography.gdb/transportation/fom_polys" reference_scale = "25000" prjFile = "c:/Program Files/ArcGIS/Desktop10.0/Coordinate Systems/Projected Coordinate Systems" + \ "/Continental/North America/USA Contiguous Equidistant Conic.prj" spatial_reference = arcpy.SpatialReference(prjFile) margin = "5 meters" method = "EXACT_SIMPLIFIED" mask_for_non_placed_anno = "ONLY_PLACED" attributes = "ALL" # Execute Feature Outline Masks arcpy.FeatureOutlineMasks_cartography(input_layer, output_fc, reference_scale, spatial_reference, margin, method, mask_for_non_placed_anno, attributes)