import Polygon from "@arcgis/core/geometry/Polygon.js";const Polygon = await $arcgis.import("@arcgis/core/geometry/Polygon.js");- Subclasses:
- Circle
- Since
- ArcGIS Maps SDK for JavaScript 4.0
A polygon contains an array of rings and a spatialReference. Each ring is represented as an array of points. The first and last points of a ring must be the same. A polygon also has boolean-valued hasM and hasZ fields.
Known Limitations
The polygon geometries must be simple when added to the following layers:
- View.graphics
- GraphicsLayer
- Feature collections added through FeatureLayer.source
Polygon geometries can be inspected and simplified before they are added to those layers. Use the simplifyOperator to make sure that polygons display correctly on the client-side.
Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
cache readonly inherited | ||
centroid deprecated readonly | | |
| | ||
declaredClass readonly inherited | ||
extent readonly inherited | ||
hasM inherited | ||
hasZ inherited | ||
number[][][] | | |
spatialReference inherited | ||
type readonly | "polygon" | |
curveRings
An array consisting of points and curve objects that define the polygon geometry.
Example
// Polygon with a circular arc segment represented with a curve object.const curvedPolygon = new Polygon({ curveRings: [ [ [-14008897.772168774,4219321.966491825], { c: [ [-13922799.120303603,4218343.568797498], [-13964136.273597848,4258702.324397415] ] }, [-13922799.120303603,4218343.568797498], [-13923532.913909001,4170157.6736310786], [-14010365.378040956,4170402.2683893144], [-14008897.772168774,4219321.966491825] ] ], spatialReference: { wkid: 102100 }}); hasZ
- Type
- boolean
Indicates if the geometry has z-values (elevation).
Z-values defined in a geographic or metric coordinate system are expressed in meters. However, in local scenes that use a projected coordinate system, vertical units are assumed to be the same as the horizontal units specified by the service.
- Default value
- false
rings
- Type
- number[][][]
An array of rings. Each ring is a two-dimensional array of numbers representing the coordinates of each vertex in the ring in the spatial reference of the view. The first vertex of each ring should always be the same as the last vertex. Each vertex is an array of two, three, or four numbers. The table below shows the various structures of a vertex array.
| Case | Vertex array |
|---|---|
| without z and without m | [x, y] |
| without z and with m | [x, y, m] |
| with z and without m | [x, y, z] |
| with z and with m | [x, y, z, m] |
Example
//3D polygon rings with m-values (note that the second ring does not have m-values defined for it)const rings = [ [ // first ring [-97.06138,32.837,35.1,4.8], [-97.06133,32.836,35.2,4.1], [-97.06124,32.834,35.3,4.2], [-97.06138,32.837,35.1,4.8] // same as first vertex ], [ // second ring [-97.06326,32.759,35.4], [-97.06298,32.755,35.5], [-97.06153,32.749,35.6], [-97.06326,32.759,35.4] // same as first vertex ]];
const polygon = new Polygon({ hasZ: true, hasM: true, rings: rings, spatialReference: { wkid: 4326 }}); spatialReference
- Type
- SpatialReference
The spatial reference of the geometry.
- Default value
- SpatialReference.WGS84 // wkid: 4326
Methods
| Method | Signature | Class |
|---|---|---|
fromExtent static | fromExtent(extent: Extent): Polygon | |
fromJSON inherited static | fromJSON(json: any): any | |
addRing(points: number[][] | Point[]): this | | |
clone(): Polygon | | |
contains(point: Point): boolean | | |
getPoint(ringIndex: number, pointIndex: number): Point | null | undefined | | |
insertPoint(ringIndex: number, pointIndex: number, point: Point | number[]): this | | |
isClockwise(ring: number[][] | Point[]): boolean | | |
removePoint(ringIndex: number, pointIndex: number): Point | null | undefined | | |
removeRing(index: number): Point[] | null | undefined | | |
setPoint(ringIndex: number, pointIndex: number, point: Point | number[]): this | | |
toJSON inherited | toJSON(): any |
fromExtent
- Signature
-
fromExtent (extent: Extent): Polygon
Converts the given Extent to a Polygon instance. This is useful for scenarios in which you would like to display an area of interest, which is typically defined by an Extent or bounding box, as a polygon with a fill symbol in the view. Some geoprocessing tools require input geometries to be of a Polygon type and not an Extent.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| extent | An extent object to convert to a polygon. | |
- Returns
- Polygon
A polygon instance representing the given extent.
Example
view.on("click", function(evt) { const area = Polygon.fromExtent(view.extent); const graphic = new Graphic({ geometry: area, symbol: { type: "simple-fill" } }); view.graphics.add(graphic);}); fromJSON
- Signature
-
fromJSON (json: any): any
Creates a new instance of this class and initializes it with values from a JSON object
generated from an ArcGIS product. The object passed into the input json
parameter often comes from a response to a query operation in the REST API or a
toJSON()
method from another ArcGIS product. See the Using fromJSON()
topic in the Guide for details and examples of when and how to use this function.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. | |
- Returns
- any
Returns a new instance of this class.
addRing
- Signature
-
addRing (points: number[][] | Point[]): this
Adds a ring to the Polygon. The ring can be one of the following: an array of numbers or an array of points. When added the index of the ring is incremented by one.
Parameters
- Returns
- this
Returns the polygon with the new ring included.
clone
- Signature
-
clone (): Polygon
Creates a deep clone of Polygon object.
- Returns
- Polygon
A new instance of a Polygon object equal to the object used to call
.clone().
toJSON
- Signature
-
toJSON (): any
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
- Returns
- any
The ArcGIS portal JSON representation of an instance of this class.