检测图形冲突 (制图)
摘要
在两个或多个符号化要素发生图形冲突的位置处创建面。
插图
用法
-
此工具可评估符号(而不是几何)之间的冲突。输入图层和冲突图层可以是同一图层。
可以使用标准符号或制图表达符号系统对输入图层进行符号化。输入图层可包括要素类注记(包括符号替换)。Shapefile、coverage 和 CAD 图层也是可接受的输入。
此工具不接受以下输入:CAD、coverage 或 VPF 注记、尺寸、图表、点密度或比例符号、栅格图层、网络分析图层或 3D 符号。
输出要素类存储的是面要素,每个面要素表示的是符号化的输入要素与符号化的冲突要素之间发生图形冲突的区域。与这两个冲突要素关联的要素 ID 与冲突面一同存储在 FID_<input_layer_name> 和 FID_<conflict_layer_name> 字段中。如果冲突图层与输入图层相同,则第二个字段将被命名为 FID_<input_layer_name>_1。如果未发现任何图形冲突,则输出要素类将为空。
-
使用冲突距离参数可检测输入和冲突符号系统比指定距离近的区域。将在符号周围创建大小为冲突距离值一半的临时缓冲区。之后将在这些缓冲区叠置的任意位置生成冲突面。当冲突距离为零时,会在符号系统本身叠置的位置处检测冲突;这是默认设置。冲突的计算基于参考比例完成。如果从 ArcMap 中访问此工具,将使用包含输入图层的数据框的参考比例,除非“参考比例”环境设置已设置。如果从 ArcCatalog 中执行此工具,则必须设置环境设置。
-
使用线连接容许值参数可以忽略对线端点相交处符号叠置的检测。如果只是使用线符号端头确保线要素在视觉上连接,但是不想把每个实例作为冲突来检测,这项设置非常有用。线连接容许值采用页面单位,与参考比例相关。它等于中心位于线连接位置的圆的半径,在此圆内不会检测到图形叠置;默认值为 1 磅。使用至少为线符号一半宽度的值来忽略上述连接。零值意味着没有容许值,这种情况下将检测每个线连接处的冲突。仅在输入图层和冲突图层相同时,才考虑此参数。
该工具评估符号化要素的图形冲突。符号系统范围和参考比例会被结合起来考虑。仅在以下操作结束后再运行此工具:确定了符号的外观,并且确保参考比例与所需的最终输出比例相对应。
- 处理大型数据集可能会超出内存限制。这种情况下,可以通过在制图分区环境设置中确定一个关联的面要素类从而以分区方式处理输入数据。将按顺序处理各分区边界所定义的数据各个部分。冲突面的输出要素类按照面的边缘进行裁剪。
语法
参数 | 说明 | 数据类型 |
in_features |
包含符号化要素的输入要素图层。CAD、coverage 或 VPF 注记、尺寸、图表、点密度或比例符号、栅格图层、网络分析图层或 3D 符号不是可接受的输入。 | Layer |
conflict_features |
包含可能与输入图层中符号化要素产生冲突的符号化要素的要素图层。 | Layer |
out_feature_class |
为存储冲突面而创建的输出要素类。它不能是一个与输入图层关联的要素类。 | Feature Class |
conflict_distance (可选) |
设置冲突距离。将在输入和冲突图层中的符号周围创建一个大小为冲突距离值一半的临时缓冲区。将在这些缓冲区叠置的位置处生成冲突面。冲突距离以页面单位(磅、英寸、毫米、厘米)测量。如果以地图单位输入冲突距离,则会使用参考比例将其转换为页面单位。默认冲突距离为 0,此时不创建缓冲区,而且只会将物理上互相叠置的符号检测为冲突。 | Linear unit |
line_connection_allowance (可选) |
中心位于线连接位置的圆的半径,在此圆内不会检测到图形叠置。仅在输入图层和冲突图层相同时,才考虑此参数。零容许值将检测各线连接处的冲突(如果端头叠置)。以页面单位(磅、英寸、毫米、厘米)计算线连接容许值。如果以地图单位输入冲突距离,则会使用参考比例将其转换为页面单位。该值不能为负;默认值是 1 磅。 | Linear unit |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用 DetectGraphicConflict 工具。
import arcpy
from arcpy import env
env.workspace = "C:/data/cartography.gdb/buildings"
env.referenceScale = "50000"
arcpy.DetectGraphicConflict_cartography("footprints.lyr", "roads.lyr",
"C:/data/cartography.gdb/buildings/dgc_polys",
"25 meters", "0 meters")
此独立脚本显示的是使用 DetectGraphicConflict 工具的示例。
# Name: DetectGraphicConflict_standalone_script.py
# Description: Detects graphic conflicts between
# feature representations and stores
# the overlaps as polygons in
# the output feature class.
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/cartography.gdb/buildings"
env.referenceScale = "50000"
# Set local variables
in_features = "footprints.lyr"
conflict_features = "roads.lyr"
out_feature_class = "C:/data/carto.gdb/buildings/dgc_polys"
conflict_distance = "25 meters"
line_connection_allowance = "0 meters"
# Execute Detect Graphic Conflict
arcpy.DetectGraphicConflict(in_features,
conflict_features,
out_feature_class,
conflict_distance,
line_connection_allowance)