com.esri.arcgis.geoprocessing.tools.cartographytools
Class SmoothPolygon
java.lang.Object
com.esri.arcgis.geoprocessing.AbstractGPTool
com.esri.arcgis.geoprocessing.tools.cartographytools.SmoothPolygon
- All Implemented Interfaces:
- GPTool
public class SmoothPolygon
- extends AbstractGPTool
Smooths a polygon to improve its aesthetic or cartographic quality.
The Smooth Polygon tool is contained in the Cartography Tools tool box.
Illustration:
Usage tips:
- The Polynomial Approximation with Exponential Kernel (PAEK) algorithm produces smoothed polygons; 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 polygon. A small tolerance will result in a long processing time, so begin with a relatively large tolerance and a small number of features.
- 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 shapes very close to Bezier curves, since a shapefile cannot store true Bezier curves.
- Both algorithms may introduce topological errors, such as line crossing or overlapping, 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. The FLAG_ERRORS option preserves shared polygon boundaries and detects topological errors possibly introduced by smoothing. The polygon output will contain two new fields, InPoly_FID and SmoPlyFlag. The InPoly_FID field carries the feature IDs of the input polygons; the SmoPlyFlag field flags polygons with a value of 1, indicating topological errors, or a value of 0, indicating no errors.
- The two algorithms used in this tool are the same as those used in the Smooth Line tool. See "related topics" above.
- Invalid (self-intersecting) geometry may be created during the smoothing process and will be repaired. For example, if a polygon crosses itself, the polygon will be repaired to become a multiple-part polygon such that no part crosses any other part, although the polygon 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 |
SmoothPolygon()
Creates the Smooth Polygon tool with defaults. |
SmoothPolygon(java.lang.Object inFeatures,
java.lang.Object outFeatureClass,
java.lang.String algorithm,
java.lang.Object tolerance)
Creates the Smooth Polygon 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 Preserve endpoint for rings 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 Preserve endpoint for rings 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 |
SmoothPolygon
public SmoothPolygon()
- Creates the Smooth Polygon tool with defaults.
Initializes the array of tool parameters with the default values specified when the tool was created.
SmoothPolygon
public SmoothPolygon(java.lang.Object inFeatures,
java.lang.Object outFeatureClass,
java.lang.String algorithm,
java.lang.Object tolerance)
- Creates the Smooth Polygon 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 polygon features to be smoothed.outFeatureClass
- Feature Class, the output polygon feature class to be created.algorithm
- String, specifies the smoothing algorithm.- PAEK—Stands for Polynomial Approximation with Exponential Kernel. It calculates a smoothed polygon that will not pass through the input polygon vertices. This is the default.
- BEZIER_INTERPOLATION—Fits Bezier curves between vertices. The resulting polygon passes through the vertices of input polygons. 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 polygon 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 polygon features to be smoothed.
This is a required parameter.
- Parameters:
inFeatures
- Feature Layer, the polygon 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 polygon 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 polygon feature class to be created.
This is a required parameter.
- Parameters:
outFeatureClass
- Feature Class, the output polygon 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 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 smoothing algorithm.
This is a required parameter.
- Parameters:
algorithm
- String, specifies the smoothing algorithm.- PAEK—Stands for Polynomial Approximation with Exponential Kernel. It calculates a smoothed polygon that will not pass through the input polygon vertices. This is the default.
- BEZIER_INTERPOLATION—Fits Bezier curves between vertices. The resulting polygon passes through the vertices of input polygons. 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 Preserve endpoint for rings parameter of this tool .
This parameter is String, specifies whether or not to preserve the endpoints for isolated polygon rings. This option works with the PAEK algorithm only.
This is an optional parameter.
- Returns:
- the Preserve endpoint for rings
setEndpointOption
public void setEndpointOption(java.lang.String endpointOption)
- Sets the Preserve endpoint for rings parameter of this tool .
This parameter is String, specifies whether or not to preserve the endpoints for isolated polygon rings. This option works with the PAEK algorithm only.
This is an optional parameter.
- Parameters:
endpointOption
- String, specifies whether or not to preserve the endpoints for isolated polygon rings. This option works with the PAEK algorithm only.- FIXED_ENDPOINT—Preserves the endpoint of an isolated polygon ring. This is the default.
- NOT_FIXED—Smooths through the endpoint of an isolated polygon ring.
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 or overlapping) 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 or overlapping) 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 or overlapping) 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