com.esri.arcgis.geoprocessing.tools.datamanagementtools
Class SmoothLine
java.lang.Object
com.esri.arcgis.geoprocessing.AbstractGPTool
com.esri.arcgis.geoprocessing.tools.datamanagementtools.SmoothLine
- All Implemented Interfaces:
- GPTool
public class SmoothLine
- extends AbstractGPTool
Smooths a line to improve its aesthetic or cartographic quality.
The Smooth Line tool is contained in the Data Management Tools tool box.
Learn more about how Smooth Line works
Illustration:
Usage tips:
- The Polynomial Approximation with Exponential Kernel (PAEK) algorithm produces smoothed lines; each may have more vertices than its source line. The tolerance you specify is the length of a "moving" path used in calculating the new vertices. The longer the length, the more smoothed the line. A small tolerance will result in a long processing time, so begin with a relatively large tolerance and a small number of lines.
- The BEZIER_INTERPOLATION algorithm does not require any tolerance. If you are using the command line or scripting, you still need to enter zero in place of the smooth_tolerance.
- When BEZIER_INTERPOLATION is used for shapefile output, it will produce lines very close to Bezier curves, since a shapefile cannot store true Bezier curves.
- Both algorithms may introduce topological errors, such as line crossings, in the results. If you are not concerned about the topological errors, use the default NO_CHECK option. If you want to know about the errors, use the FLAG_ERRORS option so that a new field, SmoLnFlag, will be added to the output, storing a value of 1 for lines with topological errors, and a value of zero for others.
- Invalid (self-intersecting) geometry may be created during the smoothing process and will be repaired. For example, if a line crosses itself, the line will be repaired to become a multiple-part line such that no part crosses any other part, although the line will still look self-crossing.
- The FLAG_ERRORS option of this tool is not supported in an edit session.
- Learn more about spatial reference and geoprocessing
- The following environment settings affect this tool: XY tolerance, Extent, M domain, Coordinate system, Output has M values, Output has Z values, Default Z value, Output XY domain, workspace, and scratch workspace.
Constructor Summary |
SmoothLine()
Creates the Smooth Line tool with defaults. |
SmoothLine(java.lang.Object inFeatures,
java.lang.Object outFeatureClass,
java.lang.String algorithm,
java.lang.Object tolerance)
Creates the Smooth Line tool with the required parameters. |
Method Summary |
java.lang.String |
getAlgorithm()
Returns the Smoothing Algorithm parameter of this tool . |
java.lang.String |
getEndpointOption()
Returns the Preseve endpoint for closed lines parameter of this tool . |
java.lang.String |
getErrorOption()
Returns the Handling Topological Errors parameter of this tool . |
java.lang.Object |
getInFeatures()
Returns the Input Features parameter of this tool . |
java.lang.Object |
getOutFeatureClass()
Returns the Output Feature Class parameter of this tool . |
java.lang.Object |
getTolerance()
Returns the Smoothing Tolerance parameter of this tool . |
java.lang.String |
getToolboxAlias()
Returns the alias of the tool box containing this tool. |
java.lang.String |
getToolboxName()
Returns the name of the tool box containing this tool. |
java.lang.String |
getToolName()
Returns the name of this tool. |
void |
setAlgorithm(java.lang.String algorithm)
Sets the Smoothing Algorithm parameter of this tool . |
void |
setEndpointOption(java.lang.String endpointOption)
Sets the Preseve endpoint for closed lines parameter of this tool . |
void |
setErrorOption(java.lang.String errorOption)
Sets the Handling Topological Errors parameter of this tool . |
void |
setInFeatures(java.lang.Object inFeatures)
Sets the Input Features parameter of this tool . |
void |
setOutFeatureClass(java.lang.Object outFeatureClass)
Sets the Output Feature Class parameter of this tool . |
void |
setTolerance(java.lang.Object tolerance)
Sets the Smoothing Tolerance parameter of this tool . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
SmoothLine
public SmoothLine()
- Creates the Smooth Line tool with defaults.
Initializes the array of tool parameters with the default values specified when the tool was created.
SmoothLine
public SmoothLine(java.lang.Object inFeatures,
java.lang.Object outFeatureClass,
java.lang.String algorithm,
java.lang.Object tolerance)
- Creates the Smooth Line tool with the required parameters.
Initializes the array of tool parameters with the values as specified for the required parameters and with the default values for the other parameters.
- Parameters:
inFeatures
- Feature Layer, the line features to be smoothed.outFeatureClass
- Feature Class, the output feature class to be created.algorithm
- String, specifies the line smoothing algorithm.- PAEK—Stands for Polynomial Approximation with Exponential Kernel. It calculates a smoothed line that will not pass through the input line vertices. This is the default.
- BEZIER_INTERPOLATION—Fits Bezier curves between vertices. The resulting line passes through the vertices of the input line. This algorithm does not require a tolerance.
tolerance
- Linear Unit, sets a tolerance used by the PAEK algorithm. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit.
getInFeatures
public java.lang.Object getInFeatures()
- Returns the Input Features parameter of this tool .
This parameter is Feature Layer, the line features to be smoothed.
This is a required parameter.
- Returns:
- the Input Features
setInFeatures
public void setInFeatures(java.lang.Object inFeatures)
- Sets the Input Features parameter of this tool .
This parameter is Feature Layer, the line features to be smoothed.
This is a required parameter.
- Parameters:
inFeatures
- Feature Layer, the line features to be smoothed.
getOutFeatureClass
public java.lang.Object getOutFeatureClass()
- Returns the Output Feature Class parameter of this tool .
This parameter is Feature Class, the output feature class to be created.
This is a required parameter.
- Returns:
- the Output Feature Class
setOutFeatureClass
public void setOutFeatureClass(java.lang.Object outFeatureClass)
- Sets the Output Feature Class parameter of this tool .
This parameter is Feature Class, the output feature class to be created.
This is a required parameter.
- Parameters:
outFeatureClass
- Feature Class, the output feature class to be created.
getAlgorithm
public java.lang.String getAlgorithm()
- Returns the Smoothing Algorithm parameter of this tool .
This parameter is String, specifies the line smoothing algorithm.
This is a required parameter.
- Returns:
- the Smoothing Algorithm
setAlgorithm
public void setAlgorithm(java.lang.String algorithm)
- Sets the Smoothing Algorithm parameter of this tool .
This parameter is String, specifies the line smoothing algorithm.
This is a required parameter.
- Parameters:
algorithm
- String, specifies the line smoothing algorithm.- PAEK—Stands for Polynomial Approximation with Exponential Kernel. It calculates a smoothed line that will not pass through the input line vertices. This is the default.
- BEZIER_INTERPOLATION—Fits Bezier curves between vertices. The resulting line passes through the vertices of the input line. This algorithm does not require a tolerance.
getTolerance
public java.lang.Object getTolerance()
- Returns the Smoothing Tolerance parameter of this tool .
This parameter is Linear Unit, sets a tolerance used by the PAEK algorithm. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit.
This is a required parameter.
- Returns:
- the Smoothing Tolerance
setTolerance
public void setTolerance(java.lang.Object tolerance)
- Sets the Smoothing Tolerance parameter of this tool .
This parameter is Linear Unit, sets a tolerance used by the PAEK algorithm. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit.
This is a required parameter.
- Parameters:
tolerance
- Linear Unit, sets a tolerance used by the PAEK algorithm. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit.
getEndpointOption
public java.lang.String getEndpointOption()
- Returns the Preseve endpoint for closed lines parameter of this tool .
This parameter is String, specifies whether to preserve the endpoints for closed lines. This option works with the PAEK algorithm only.
This is an optional parameter.
- Returns:
- the Preseve endpoint for closed lines
setEndpointOption
public void setEndpointOption(java.lang.String endpointOption)
- Sets the Preseve endpoint for closed lines parameter of this tool .
This parameter is String, specifies whether to preserve the endpoints for closed lines. This option works with the PAEK algorithm only.
This is an optional parameter.
- Parameters:
endpointOption
- String, specifies whether to preserve the endpoints for closed lines. This option works with the PAEK algorithm only.- FIXED_CLOSED_ENDPOINT—Preserves the endpoint of a closed line. This is the default.
- NO_FIXED—Smooths through the endpoint of a closed line.
getErrorOption
public java.lang.String getErrorOption()
- Returns the Handling Topological Errors parameter of this tool .
This parameter is String, specifies how the topological errors (possibly introduced in the process, such as line crossing) will be handled.
This is an optional parameter.
- Returns:
- the Handling Topological Errors
setErrorOption
public void setErrorOption(java.lang.String errorOption)
- Sets the Handling Topological Errors parameter of this tool .
This parameter is String, specifies how the topological errors (possibly introduced in the process, such as line crossing) will be handled.
This is an optional parameter.
- Parameters:
errorOption
- String, specifies how the topological errors (possibly introduced in the process, such as line crossing) will be handled.- NO_CHECK—Specifies not to check for topological errors. This is the default.
- FLAG_ERRORS—Specifies to flag topological errors, if any are found.
getToolName
public java.lang.String getToolName()
- Returns the name of this tool.
- Returns:
- the tool name
getToolboxName
public java.lang.String getToolboxName()
- Returns the name of the tool box containing this tool.
- Returns:
- the tool box name
getToolboxAlias
public java.lang.String getToolboxAlias()
- Returns the alias of the tool box containing this tool.
- Returns:
- the tool box alias