new PolygonGeometry
A Geometry that represents vertices and indices for a polygon on the ellipsoid. The polygon is either defined by an array of Cartesian points, or 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. |
Throws:
-
DeveloperError : polygonHierarchy is required.
-
DeveloperError : At least three positions are required.
-
DeveloperError : Duplicate positions result in not enough positions to form a polygon.
Example
// create a polygon from points
var geometry = 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)
])
}
});
// create a nested polygon with holes
var geometryWithHole = 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)
])
}]
}]
}]
}
});
//create extruded polygon
var geometry = new Cesium.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
});
Source:
Members
-
attributes :GeometryAttributes
-
An object containing GeometryAttribute properties named after each of the
truevalues of the VertexFormat option.See:
-
boundingSphere :BoundingSphere
-
A tight-fitting bounding sphere that encloses the vertices of the geometry.
-
indices :Array
-
Index data that, along with Geometry#primitiveType, determines the primitives in the geometry.
-
primitiveType :PrimitiveType
-
The type of primitives in the geometry. For this geometry, it is PrimitiveType.TRIANGLES.
Methods
-
<static> fromPositions
-
Creates a polygon from an array of positions.
Parameters:
Name Type Argument Default Description options.positionsArray An array of positions that defined the corner points of the polygon. options.heightNumber <optional>
0.0 The height of the polygon. options.extrudedHeightNumber <optional>
The height of the polygon extrusion. options.vertexFormatVertexFormat <optional>
VertexFormat.DEFAULT The vertex attributes to be computed. options.stRotationNumber <optional>
0.0 The rotation of the texture coordiantes, in radians. A positive rotation is counter-clockwise. options.ellipsoidEllipsoid <optional>
Ellipsoid.WGS84 The ellipsoid to be used as a reference. options.granularityNumber <optional>
CesiumMath.RADIANS_PER_DEGREE The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer. Throws:
-
DeveloperError : options.positions is required.
-
DeveloperError : At least three positions are required.
-
DeveloperError : Duplicate positions result in not enough positions to form a polygon.
Example
// create a polygon from points var geometry = new PolygonGeometry({ 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) ]) }); -
