# PolygonOutlineGeometry

#### new Cesium.PolygonOutlineGeometry(options)
Core/PolygonOutlineGeometry.js 287

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

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `polygonHierarchy` | PolygonHierarchy |  | A polygon hierarchy that can include holes.
  `height` | Number | `0.0` | optional The distance in meters between the polygon and the ellipsoid surface.
  `extrudedHeight` | Number |  | optional The distance in meters between the polygon's extruded face and the ellipsoid surface.
  `vertexFormat` | VertexFormat | `VertexFormat.DEFAULT` | optional The vertex attributes to be computed.
  `ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid to be used as a reference.
  `granularity` | Number | `CesiumMath.RADIANS_PER_DEGREE` | optional The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
  `perPositionHeight` | Boolean | `false` | optional Use the height of options.positions for each position instead of using options.height to determine the height.

  ##### Example:

      // 1. create a polygon outline from points
      var polygon = new Cesium.PolygonOutlineGeometry({
        polygonHierarchy : new Cesium.PolygonHierarchy(
          Cesium.Cartesian3.fromDegreesArray([
            -72.0, 40.0,
            -70.0, 35.0,
            -75.0, 30.0,
            -70.0, 30.0,
            -68.0, 40.0
          ])
        )
      });
      var geometry = Cesium.PolygonOutlineGeometry.createGeometry(polygon);

      // 2. create a nested polygon with holes outline
      var polygonWithHole = new Cesium.PolygonOutlineGeometry({
        polygonHierarchy : new Cesium.PolygonHierarchy(
          Cesium.Cartesian3.fromDegreesArray([
            -109.0, 30.0,
            -95.0, 30.0,
            -95.0, 40.0,
            -109.0, 40.0
          ]),
          [new Cesium.PolygonHierarchy(
            Cesium.Cartesian3.fromDegreesArray([
              -107.0, 31.0,
              -107.0, 39.0,
              -97.0, 39.0,
              -97.0, 31.0
            ]),
            [new Cesium.PolygonHierarchy(
              Cesium.Cartesian3.fromDegreesArray([
                -105.0, 33.0,
                -99.0, 33.0,
                -99.0, 37.0,
                -105.0, 37.0
              ]),
              [new Cesium.PolygonHierarchy(
                Cesium.Cartesian3.fromDegreesArray([
                  -103.0, 34.0,
                  -101.0, 34.0,
                  -101.0, 36.0,
                  -103.0, 36.0
                ])
              )]
            )]
          )]
        )
      });
      var geometry = Cesium.PolygonOutlineGeometry.createGeometry(polygonWithHole);

      // 3. create extruded polygon outline
      var extrudedPolygon = new Cesium.PolygonOutlineGeometry({
        polygonHierarchy : new Cesium.PolygonHierarchy(
          Cesium.Cartesian3.fromDegreesArray([
            -72.0, 40.0,
            -70.0, 35.0,
            -75.0, 30.0,
            -70.0, 30.0,
            -68.0, 40.0
          ])
        ),
        extrudedHeight: 300000
      });
      var geometry = Cesium.PolygonOutlineGeometry.createGeometry(extrudedPolygon);

  ##### See:

  - PolygonOutlineGeometry#createGeometry
  - PolygonOutlineGeometry#fromPositions

### Members

#### packedLength : Number
Core/PolygonOutlineGeometry.js 324

  The number of elements used to pack the object into an array.

### Methods

#### staticCesium.PolygonOutlineGeometry.createGeometry(polygonGeometry) → Geometry|undefined
Core/PolygonOutlineGeometry.js 471

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

  Name | Type | Description
  --- | --- | ---
  `polygonGeometry` | PolygonOutlineGeometry | A description of the polygon outline.

  ##### Returns:

  The computed vertices and indices.

#### staticCesium.PolygonOutlineGeometry.fromPositions(options) → PolygonOutlineGeometry
Core/PolygonOutlineGeometry.js 443

  A description of a polygon outline from an array of positions.

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `positions` | Array.<Cartesian3> |  | An array of positions that defined the corner points of the polygon.
  `height` | Number | `0.0` | optional The height of the polygon.
  `extrudedHeight` | Number |  | optional The height of the polygon extrusion.
  `ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid to be used as a reference.
  `granularity` | Number | `CesiumMath.RADIANS_PER_DEGREE` | optional The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
  `perPositionHeight` | Boolean | `false` | optional Use the height of options.positions for each position instead of using options.height to determine the height.

  ##### Returns:

  ##### Example:

      // create a polygon from points
      var polygon = Cesium.PolygonOutlineGeometry.fromPositions({
        positions : Cesium.Cartesian3.fromDegreesArray([
          -72.0, 40.0,
          -70.0, 35.0,
          -75.0, 30.0,
          -70.0, 30.0,
          -68.0, 40.0
        ])
      });
      var geometry = Cesium.PolygonOutlineGeometry.createGeometry(polygon);

  ##### See:

  - PolygonOutlineGeometry#createGeometry

#### staticCesium.PolygonOutlineGeometry.pack(value, array, startingIndex) → Array.<Number>
Core/PolygonOutlineGeometry.js 336

  Stores the provided instance into the provided array.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `value` | PolygonOutlineGeometry |  | The value to pack.
  `array` | Array.<Number> |  | The array to pack into.
  `startingIndex` | Number | `0` | optional The index into the array at which to start packing the elements.

  ##### Returns:

  The array that was packed into

#### staticCesium.PolygonOutlineGeometry.unpack(array, startingIndex, result) → PolygonOutlineGeometry
Core/PolygonOutlineGeometry.js 376

  Retrieves an instance from a packed array.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `array` | Array.<Number> |  | The packed array.
  `startingIndex` | Number | `0` | optional The starting index of the element to be unpacked.
  `result` | PolygonOutlineGeometry |  | optional The object into which to store the result.

  ##### Returns:

  The modified result parameter or a new PolygonOutlineGeometry instance if one was not provided.