# PolylineGeometry

#### new Cesium.PolylineGeometry(options)
Core/PolylineGeometry.js 116

  A description of a polyline modeled as a line strip; the first two positions define a line segment, and each additional position defines a line segment from the previous position. The polyline is capable of displaying with a material.

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

  `options`

  Object

  Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `positions` | Array.<Cartesian3> |  | An array of `Cartesian3` defining the positions in the polyline as a line strip.
  `width` | Number | `1.0` | optional The width in pixels.
  `colors` | Array.<Color> |  | optional An Array of `Color` defining the per vertex or per segment colors.
  `colorsPerVertex` | Boolean | `false` | optional A boolean that determines whether the colors will be flat across each segment of the line or interpolated across the vertices.
  `followSurface` | Boolean | `true` | optional A boolean that determines whether positions will be adjusted to the surface of the ellipsoid via a great arc.
  `granularity` | Number | `CesiumMath.RADIANS_PER_DEGREE` | optional The distance, in radians, between each latitude and longitude if options.followSurface=true. Determines the number of positions in the buffer.
  `vertexFormat` | VertexFormat | `VertexFormat.DEFAULT` | optional The vertex attributes to be computed.
  `ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid to be used as a reference.

  ##### Throws:

  - DeveloperError : At least two positions are required.
  - DeveloperError : width must be greater than or equal to one.
  - DeveloperError : colors has an invalid length.

  ##### Example:

      // A polyline with two connected line segments
      var polyline = new Cesium.PolylineGeometry({
        positions : Cesium.Cartesian3.fromDegreesArray([
          0.0, 0.0,
          5.0, 0.0,
          5.0, 5.0
        ]),
        width : 10.0
      });
      var geometry = Cesium.PolylineGeometry.createGeometry(polyline);

  ##### Demo:

  - Cesium Sandcastle Polyline Demo

  ##### See:

  - PolylineGeometry#createGeometry

### Members

#### packedLength : Number
Core/PolylineGeometry.js 152

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

### Methods

#### staticCesium.PolylineGeometry.createGeometry(polylineGeometry) → Geometry|undefined
Core/PolylineGeometry.js 298

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

  Name | Type | Description
  --- | --- | ---
  `polylineGeometry` | PolylineGeometry | A description of the polyline.

  ##### Returns:

  The computed vertices and indices.

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

  Stores the provided instance into the provided array.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `value` | PolylineGeometry |  | 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.PolylineGeometry.unpack(array, startingIndex, result) → PolylineGeometry
Core/PolylineGeometry.js 229

  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` | PolylineGeometry |  | optional The object into which to store the result.

  ##### Returns:

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