Summary
Resolves graphic conflicts among symbolized road features by adjusting portions of line segments.
Illustration
Usage
This tool is typically used when producing relatively large-scale products where it is preferable to display divided roads with multiple lanes that are visually distinct. At smaller scales, you may want to use the Merge Divided Roads tool to display a single representative line for these features instead. If your workflow includes running both tools on the same collection of roads, it is advisable to merge roads prior to resolving road conflicts.
The Hierarchy Field parameter is used to specify the hierarchical importance of each road class. Lower integers specify more significant roads, with hierarchy equal to 1 for the most important roads. Movement will be minimized for the most important roads; lower-hierarchy roads generally will be moved to accommodate higher-hierarchy roads. The hierarchy field must be present and named the same for all input feature classes.
This tool operates by assessing graphic conflicts of symbolized features. The symbology extent and the reference scale are considered in conjunction with one another. Run this tool only after you have finalized the appearance of your symbols, and ensure that the reference scale corresponds to the final intended output scale.
An error will be raised if line and outline symbol widths equal zero. To eliminate certain features from display, consider using a definition query on the layer.
You can lock features from displacement by calculating the Hierarchy Field value equal to 0 (zero). This is useful when a road should not be moved because of its spatial relationship with other map features, especially continuous data like elevation.
Processing large road datasets or a number of datasets together may exceed memory limitations. In this case, consider processing input data by partition by identifying a relevant polygon feature class in the Cartographic Partitions environment setting. Portions of the data, defined by partition boundaries, will be processed sequentially. The resulting feature classes will be seamless and consistent at partition edges. See How Resolve Road Conflicts works for more information about running this tool with partitioning.
The optional Output Displacement Feature Class parameter creates a feature class of polygons that indicates the amount and direction of displacement that took place. This feature class can be used for visual inspection, for spatial querying, or as an input to the Propagate Displacement tool.
Syntax
ResolveRoadConflicts_cartography (in_layers, hierarchy_field, {out_displacement_features})
Parameter | Explanation | Data Type |
in_layers [in_layers,...] | The input feature layers containing symbolized road features that may be in conflict. | Layer |
hierarchy_field | The field that contains hierarchical ranking of feature importance, where 1 is very important and larger integers reflect decreasing importance. A value of 0 (zero) locks the feature to ensure that it is not moved. The hierarchy field must be present and named the same for all input feature classes. | String |
out_displacement_features (Optional) | The output polygon features containing the degree and direction of road displacement, to be used by the Propagate Displacement tool to preserve spatial relationships. | Feature Class |
Derived Output
Name | Explanation | Data Type |
out_layers |
Code sample
ResolveRoadConflicts example 1 (Python window)
The following Python window script demonstrates how to use the ResolveRoadConflicts tool in immediate mode.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.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 example 2 (stand-alone script)
This stand-alone script shows an example of using the ResolveRoadConflicts tool.
# 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)
Environments
Licensing information
- ArcGIS Desktop Basic: No
- ArcGIS Desktop Standard: No
- ArcGIS Desktop Advanced: Yes
Related topics
- An overview of the Graphic Conflicts toolset
- Understanding conflict resolution and generalization
- Automating conflict resolution and generalization workflows with geoprocessing
- How Resolve Road Conflicts works
- Merge Divided Roads
- Propagate Displacement
- Generalizing large datasets using partitions
- Create Cartographic Partitions
- Cartographic Partitions (Environment setting)