PolygonGeometry

PolygonGeometry

new

A description of a polygon on the ellipsoid. The polygon is defined by a polygon hierarchy.

Parameters:
Name Type Argument Default Description
options.polygonHierarchy Object A polygon hierarchy that can include holes.
options.height Number <optional>
0.0 The height of the polygon.
options.extrudedHeight Number <optional>
The height of the polygon.
options.vertexFormat VertexFormat <optional>
VertexFormat.DEFAULT The vertex attributes to be computed.
options.stRotation Number <optional>
0.0 The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
options.ellipsoid Ellipsoid <optional>
Ellipsoid.WGS84 The ellipsoid to be used as a reference.
options.granularity Number <optional>
CesiumMath.RADIANS_PER_DEGREE The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
options.perPositionHeight Boolean <optional>
false Use the height of options.positions for each position instaed of using options.height to determine the height.
Throws:
DeveloperError : polygonHierarchy is required.
Example
// 1. create a polygon from points
var polygon = new PolygonGeometry({
    polygonHierarchy : {
        positions : ellipsoid.cartographicArrayToCartesianArray([
            Cartographic.fromDegrees(-72.0, 40.0),
            Cartographic.fromDegrees(-70.0, 35.0),
            Cartographic.fromDegrees(-75.0, 30.0),
            Cartographic.fromDegrees(-70.0, 30.0),
            Cartographic.fromDegrees(-68.0, 40.0)
        ])
    }
});
var geometry = PolygonGeometry.createGeometry(polygon);

// 2. create a nested polygon with holes
var polygonWithHole = new PolygonGeometry({
    polygonHierarchy : {
        positions : ellipsoid.cartographicArrayToCartesianArray([
            Cartographic.fromDegrees(-109.0, 30.0),
            Cartographic.fromDegrees(-95.0, 30.0),
            Cartographic.fromDegrees(-95.0, 40.0),
            Cartographic.fromDegrees(-109.0, 40.0)
        ]),
        holes : [{
            positions : ellipsoid.cartographicArrayToCartesianArray([
                Cartographic.fromDegrees(-107.0, 31.0),
                Cartographic.fromDegrees(-107.0, 39.0),
                Cartographic.fromDegrees(-97.0, 39.0),
                Cartographic.fromDegrees(-97.0, 31.0)
            ]),
            holes : [{
                positions : ellipsoid.cartographicArrayToCartesianArray([
                    Cartographic.fromDegrees(-105.0, 33.0),
                    Cartographic.fromDegrees(-99.0, 33.0),
                    Cartographic.fromDegrees(-99.0, 37.0),
                    Cartographic.fromDegrees(-105.0, 37.0)
                    ]),
                holes : [{
                    positions : ellipsoid.cartographicArrayToCartesianArray([
                        Cartographic.fromDegrees(-103.0, 34.0),
                        Cartographic.fromDegrees(-101.0, 34.0),
                        Cartographic.fromDegrees(-101.0, 36.0),
                        Cartographic.fromDegrees(-103.0, 36.0)
                    ])
                }]
             }]
        }]
    }
});
var geometry = PolygonGeometry.createGeometry(polygonWithHole);

// 3. create extruded polygon
var extrudedPolygon = new PolygonGeometry({
    positions : ellipsoid.cartographicArrayToCartesianArray([
        Cesium.Cartographic.fromDegrees(-72.0, 40.0),
        Cesium.Cartographic.fromDegrees(-70.0, 35.0),
        Cesium.Cartographic.fromDegrees(-75.0, 30.0),
        Cesium.Cartographic.fromDegrees(-70.0, 30.0),
        Cesium.Cartographic.fromDegrees(-68.0, 40.0)
    ]),
    extrudedHeight: 300000
});
var geometry = PolygonGeometry.createGeometry(extrudedPolygon);
See:
  • PolygonGeometry#createGeometry
  • PolygonGeometry#fromPositions
Source:

Methods

<static>

Computes the geometric representation of a polygon, including its vertices, indices, and a bounding sphere.

Parameters:
Name Type Description
polygonGeometry PolygonGeometry A description of the polygon.
Throws:
  • DeveloperError : At least three positions are required.
  • DeveloperError : Duplicate positions result in not enough positions to form a polygon.
Returns:
Geometry The computed vertices and indices.

<static>

A description of a polygon from an array of positions.

Parameters:
Name Type Argument Default Description
options.positions Array An array of positions that defined the corner points of the polygon.
options.height Number <optional>
0.0 The height of the polygon.
options.extrudedHeight Number <optional>
The height of the polygon extrusion.
options.vertexFormat VertexFormat <optional>
VertexFormat.DEFAULT The vertex attributes to be computed.
options.stRotation Number <optional>
0.0 The rotation of the texture coordiantes, in radians. A positive rotation is counter-clockwise.
options.ellipsoid Ellipsoid <optional>
Ellipsoid.WGS84 The ellipsoid to be used as a reference.
options.granularity Number <optional>
CesiumMath.RADIANS_PER_DEGREE The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
options.perPositionHeight Boolean <optional>
false Use the height of options.positions for each position instead of using options.height to determine the height.
Throws:
DeveloperError : options.positions is required.
Example
// create a polygon from points
var polygon = PolygonGeometry.fromPositions({
    positions : ellipsoid.cartographicArrayToCartesianArray([
        Cartographic.fromDegrees(-72.0, 40.0),
        Cartographic.fromDegrees(-70.0, 35.0),
        Cartographic.fromDegrees(-75.0, 30.0),
        Cartographic.fromDegrees(-70.0, 30.0),
        Cartographic.fromDegrees(-68.0, 40.0)
    ])
});
var geometry = PolygonGeometry.createGeometry(polygon);
See:
  • PolygonGeometry#createGeometry