解决道路冲突 (制图)
摘要
通过调整部分线段来解决符号化的道路要素之间的图形冲突。
如果输入要素未使用投影坐标系,则会发出一条警告消息。该工具基于线性距离单位,如果使用非投影坐标系,则将创建意外的结果。因此,强烈建议您对使用投影坐标系的数据运行此工具,以确保获得有效的结果。如果坐标系缺失或未知,则会生成一条错误消息并且工具将不执行处理操作。
插图
用法
-
此工具通常用于生成相对大比例的结果,这便更适合于显示具有多条清晰可辨的车道的分开的道路。在较小比例下,可能要转而使用合并分开的道路工具来显示表示这些要素的单个制图表达线。如果工作流包括对同一道路集合运行这两个工具,建议在解决道路冲突前对道路进行合并。
-
等级字段参数用于指定每个道路类的等级重要性。将使用整数指定道路的重要性,整数越小,表示道路越重要,等级为 1 的道路最重要。将尽量避免对最重要的道路进行移动;通常会移动等级较低的道路以适应等级较高的道路。对于所有输入要素类,必须存在等级字段并且指定为相同的值。
-
该工具评估符号化要素的图形冲突。符号系统范围和参考比例会被结合起来考虑。仅在以下操作结束后再运行此工具:确定了符号的外观,并且确保参考比例与所需的最终输出比例相对应。
如果线和轮廓符号宽度为零,将会引发错误。如果不想显示某些要素,可以考虑对图层使用定义查询。
-
可通过将等级字段的值设置为 0(零)来锁定要素,从而防止其位移。由于道路与其他地图要素(尤其是像高程之类的连续数据)的空间关系而无法移动道路时,这种方式会非常有用。
处理大型道路数据集或同时处理多个数据集可能会超过内存限制。在这种情况下,考虑通过在 Cartographic Partitions 环境设置中确定一个相关的面要素类来通过分区处理输入数据。将按顺序处理各分区边界所定义的数据各个部分。生成的要素类无缝,而且在分区边界一致。有关通过分区运行该工具的详细信息,请参阅解决道路冲突的工作原理。
-
可选的输出位移要素类参数可创建一个面要素类,用来指示所发生的位移量和位移方向。该要素类可用于直观检查、空间查询,也可作为传递位移工具的输入。
语法
参数 | 说明 | 数据类型 |
in_layers [in_layers,...] |
包含可能存在冲突的符号化道路要素的输入要素图层。 | Layer |
hierarchy_field |
该字段包含要素重要性的等级级别,其中 1 表示非常重要,重要性随整数值的增大而递减。字段值为 0(零)表示将锁定要素以确保其无法移动。对于所有输入要素类,必须存在等级字段并且指定为相同的值。 | String |
out_displacement_features (可选) |
包含道路位移的程度和方向的输出面要素,传递位移工具将使用这些要素保留空间关系。 | Feature Class |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用 ResolveRoadConflicts 工具。
import arcpy
from arcpy import env
env.workspace = "C:/data"
env.referenceScale = "50000"
arcpy.ResolveRoadConflicts_cartography("C:/data/roads.lyr;C:/data/streets.lyr;C:/data/highways.lyr",
"hierarchy", "C:/data/cartography.gdb/transportation/displace")
此独立脚本显示的是使用 ResolveRoadConflicts 工具的示例。
# Name: ResolveRoadConflicts_standalone_script.py
# Description: Resolves symbology conflicts between roads by separating them apart from each other
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
env.referenceScale = "50000"
# Set local variables
in_layers = "C:/data/roads.lyr;C:/data/streets.lyr;C:/data/highways.lyr"
hierarchy_field = "hierarchy"
out_displacement_features = "C:/data/cartography.gdb/transportation/displace"
# Execute Resolve Road Conflicts
arcpy.ResolveRoadConflicts_cartography(in_layers, level_field, out_displacement_features)