Polygon class final

A multipart shape used to represent an area.

Polygon geometries represent the shape and location of areas, for example, a country, island, or a lake. A polygon can be used as the geometry of features and graphics, or as input or output of tasks or geoprocessing operations, such as the output of a drive-time analysis or a GeometryEngine.buffer operation.

Each part of a multipart polygon is a series of connected Segment objects forming a closed ring. Each part must not cross any other part, but may lie completely inside or outside another part. For example, a polygon representing the state of Hawaii would comprise eight disjoint parts, one representing each island. A polygon representing the country of South Africa, which completely surrounds the enclave of Lesotho, would comprise two parts, one contained inside the other.

Polygon is similar to Polyline in that they are both composed of a series of connected segments. Like Polyline, the polygon class is a Multipart, which provides members for iterating the segments and points of each part in a polygon. Unlike parts in a Polyline, however, each part of a polygon defines a closed area, so the end point of the last segment in the part is always in the same location as the start point of the first segment, forming a closed boundary.

When defining a polygon part, there is no need to explicitly close it by repeating the start point as the last point. Polygon parts are always interpreted as enclosed areas by this API. However, you may need to simplify a polygon created with this API before storing it in a geodatabase or using it in geometry operations that rely on topological consistency. Interior rings to make donut polygons should be counter-clockwise in direction to have the correct topology.

If there is ever a doubt about the topological correctness of a polygon, call the GeometryEngine.simplify method to correct any issues. This is especially true if you pass a polygon to ArcGIS Server for a geoprocessing task to avoid any ArcGIS Server errors being thrown or to rectify polygons that may be self-intersecting, have rings which are partially contained in each other, or contain incorrect ring orientations.

Polygons are based upon the parent Geometry class. The geometry object is immutable which means that you can not change its shape once it is created. If you need to create a new polygon or modify it once it has been created, use the PolygonBuilder class.

A polygon can be used as the geometry of a Feature or Graphic. To obtain the geometry on these objects, use GeoElement.geometry.

Inheritance

Properties

dimension GeometryDimension
Indicates the dimensionality of a Geometry, relating to the number of spatial dimensions in which the geometry may have a size.
no setterinherited
extent Envelope
The minimum enclosing bounding-box (or Envelope) that covers the geometry.
no setterinherited
geometryType GeometryType
This indicates the type of geometrical shape it can represent, such as Envelope, Point or Polygon.
no setterinherited
hasCurves bool
True if this geometry contains curve segments, false otherwise.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
hasM bool
True if the geometry has m values (measure values), false otherwise.
no setterinherited
hasZ bool
True if the geometry has z-coordinate values, false otherwise.
no setterinherited
isEmpty bool
True if the geometry is empty, false otherwise.
no setterinherited
parts ImmutablePartCollection
The parts for the multipart.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
spatialReference SpatialReference?
The spatial reference for this geometry.
no setterinherited

Methods

equalsWithTolerance({required Geometry right, required double tolerance}) bool
Checks if two geometries are approximately the same within the given tolerance.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
Returns a JSON representation of this Object in the data type used by jsonDecode.
inherited
toJsonString() String
Returns a JSON representation of this Object as a String.
inherited
toPolyline() Polyline
Creates a polyline containing paths for all the rings in this polygon.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited