Polygon

new Polygon(options)

A renderable polygon or hierarchy of polygons.
Name Type Description
options Object optional Object with the following properties:
Name Type Default Description
ellipsoid Ellipsoid Ellipsoid.WGS84 optional The ellipsoid that the polygon is drawn on.
positions Array.<Cartesian3> optional The cartesian positions of the polygon.
polygonHierarchy Object optional An object defining the vertex positions of each nested polygon as defined in Polygon#configureFromPolygonHierarchy.
granularity Number CesiumMath.RADIANS_PER_DEGREE optional The distance, in radians, between each latitude and longitude in the underlying geometry.
height Number 0.0 optional The height, in meters, that the rectangle is raised above the Polygon#ellipsoid.
textureRotationAngle Number 0.0 optional The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
show Boolean true optional Determines if this primitive will be shown.
material Material optional The surface appearance of the primitive.
id Object optional A user-defined object to return when the instance is picked with Scene#pick
asynchronous Boolean true optional Determines if the primitive will be created asynchronously or block until ready.
debugShowBoundingVolume Boolean false optional For debugging only. Determines if the primitive's commands' bounding spheres are shown.
Throws:
  • DeveloperError : Either options.positions or options.polygonHierarchy can be provided, but not both.
  • DeveloperError : When options.positions is provided, at least three positions are required.
Examples:
// Example 1
var polygon = new Cesium.Polygon({
  positions : [
    ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...)),
    ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...)),
    ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...))
  ]
});
// Example 2
var polygon = new Cesium.Polygon();
polygon.material.uniforms.color = {
  red   : 1.0,
  green : 0.0,
  blue  : 0.0,
  alpha : 1.0
};
polygon.positions = [ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...)),
  ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...)),
  ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...))];
Demo:

Members

asynchronous :Boolean

Determines if the geometry instances will be created and batched on a web worker.
Default Value: true

debugShowBoundingVolume :Boolean

This property is for debugging only; it is not for production use nor is it optimized.

Draws the bounding sphere for each draw command in the primitive.

Default Value: false

ellipsoid :Ellipsoid

The ellipsoid that the polygon is drawn on.
Default Value: Ellipsoid.WGS84

granularity :Number

The distance, in radians, between each latitude and longitude in the underlying geometry. A lower granularity fits the curvature of the Polygon#ellipsoid better, but uses more triangles.
Default Value: CesiumMath.RADIANS_PER_DEGREE

height :Number

The height, in meters, that the polygon is raised above the Polygon#ellipsoid.
Default Value: 0.0

id :Object

User-defined object returned when the polygon is picked.
Default Value: undefined
See:

material :Material

The surface appearance of the primitive. This can be one of several built-in Material objects or a custom material, scripted with Fabric.

The default material is Material.ColorType.

Default Value: Material.fromType(Material.ColorType)
Example:
// 1. Change the color of the default material to yellow
polygon.material.uniforms.color = new Cesium.Color(1.0, 1.0, 0.0, 1.0);

// 2. Change material to horizontal stripes
polygon.material = Cesium.Material.fromType( Material.StripeType);
See:

positions :Array.<Cartesian3>

Gets or sets positions that define the boundary of the polygon.
Example:
polygon.positions = [
  ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...)),
  ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...)),
  ellipsoid.cartographicToCartesian(new Cesium.Cartographic(...))
];

show :Boolean

Determines if this primitive will be shown.
Default Value: true

textureRotationAngle :Number

The angle, in radians, relative to north that the polygon's texture is rotated. Positive angles rotate counter-clockwise.
Default Value: 0.0

Methods

configureFromPolygonHierarchy(hierarchy)

Create a set of polygons with holes from a nested hierarchy.
Name Type Description
hierarchy Object An object defining the vertex positions of each nested polygon. For example, the following polygon has two holes, and one hole has a hole. holes is optional. Leaf nodes only have positions.

{
 positions : [ ... ],    // The polygon's outer boundary
 holes : [               // The polygon's inner holes
   {
     positions : [ ... ]
   },
   {
     positions : [ ... ],
     holes : [           // A polygon within a hole
      {
        positions : [ ... ]
      }
     ]
   }
 ]
}

Throws:
  • DeveloperError : This object was destroyed, i.e., destroy() was called.
Example:
// A triangle within a triangle
var hierarchy = {
  positions : [
    new Cesium.Cartesian3(-634066.5629045101, -4608738.034138676, 4348640.761750969),
    new Cesium.Cartesian3(-1321523.0597310204, -5108871.981065817, 3570395.2500986718),
    new Cesium.Cartesian3(46839.74837473363, -5303481.972379478, 3530933.5841716)
  ],
  holes : [{
    positions :[
      new Cesium.Cartesian3(-646079.44483647, -4811233.11175887, 4123187.2266941597),
      new Cesium.Cartesian3(-1024015.4454943262, -5072141.413164587, 3716492.6173834214),
      new Cesium.Cartesian3(-234678.22583880965, -5189078.820849883, 3688809.059214336)
    ]
  }]
};

destroy()undefined

Destroys the WebGL resources held by this object. Destroying an object allows for deterministic release of WebGL resources, instead of relying on the garbage collector to destroy this object.

Once an object is destroyed, it should not be used; calling any function other than isDestroyed will result in a DeveloperError exception. Therefore, assign the return value (undefined) to the object as done in the example.
Returns:
Throws:
  • DeveloperError : This object was destroyed, i.e., destroy() was called.
Example:
polygon = polygon && polygon.destroy();
See:

isDestroyed()Boolean

Returns true if this object was destroyed; otherwise, false.

If this object was destroyed, it should not be used; calling any function other than isDestroyed will result in a DeveloperError exception.
Returns:
true if this object was destroyed; otherwise, false.
See:

update()

Called when Viewer or CesiumWidget render the scene to get the draw commands needed to render this primitive.

Do not call this function directly. This is documented just to list the exceptions that may be propagated when the scene is rendered:

Throws: