Class: PolygonGeometry

PolygonGeometry

new PolygonGeometry()

多边形几何体类,可以使用PrimitiveGroundPrimitive进行绘制。

Name Type Default Description
options.polygonHierarchy PolygonHierarchy 可选

可以包含多孔的多边形层次结构。

options.height Number 0.0 可选

多边形和椭球表面之间的距离(以米为单位)。

options.extrudedHeight Number 可选

多边形的拉伸面和椭圆体表面之间的距离。

options.vertexFormat VertexFormat VertexFormat.DEFAULT 可选

要计算的顶点属性。

options.stRotation Number 0.0 可选

纹理坐标的旋转,以弧度为单位。正向旋转是逆时针方向。

options.ellipsoid Ellipsoid Ellipsoid.WGS84 可选

要作参考的椭球体。

options.granularity Number Math.RADIANS_PER_DEGREE 可选

每个纬度和经度之间的距离(以弧度为单位)。确定缓冲区中的位置数。

options.perPositionHeight Boolean false 可选

对每个位置使用options.options的高度,而不是使用options.height来确定高度。

options.closeTop Boolean true 可选

当为false时, 使拉伸多边形的顶部保持打开状态。

options.closeBottom Boolean true 可选

当为false时, 使拉伸多边形的底部保持打开状态。

See:
  • PolygonGeometry#createGeometry
  • PolygonGeometry#fromPositions
Example
// 1. create a polygon from points
var polygon = new SuperMap3D.PolygonGeometry({
  polygonHierarchy : new SuperMap3D.PolygonHierarchy(
    SuperMap3D.Cartesian3.fromDegreesArray([
      -72.0, 40.0,
      -70.0, 35.0,
      -75.0, 30.0,
      -70.0, 30.0,
      -68.0, 40.0
    ])
  )
});
var geometry = SuperMap3D.PolygonGeometry.createGeometry(polygon);

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

// 3. create extruded polygon
var extrudedPolygon = new SuperMap3D.PolygonGeometry({
  polygonHierarchy : new SuperMap3D.PolygonHierarchy(
    SuperMap3D.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 = SuperMap3D.PolygonGeometry.createGeometry(extrudedPolygon);

Members

packedLengthNumber

用于将对象打包到数组中的元素个数。

Methods

static createGeometry(polygonGeometry){Geometry|undefined}

计算多边形的几何表示,包括顶点、索引和包围球。

Name Type Description
polygonGeometry PolygonGeometry

对多边形的描述。

Returns:
Type Description
Geometry | undefined 计算出的顶点和索引。

static fromPositions(){PolygonGeometry}

‌通过顶点坐标数组定义的多边形描述。 其几何体可通过PrimitiveGroundPrimitive 两种方式渲染。

Name Type Default Description
options.positions Array.<Cartesian3>

定义多边形角点的位置数组。

options.height Number 0.0 可选

多边形的高度。

options.extrudedHeight Number 可选

挤出多边形的高度。

options.vertexFormat VertexFormat VertexFormat.DEFAULT 可选

要计算的顶点属性。

options.stRotation Number 0.0 可选

纹理坐标的旋转角度,单位为弧度。正旋转为逆时针方向。

options.ellipsoid Ellipsoid Ellipsoid.WGS84 可选

用作参考的椭球体。

options.granularity Number Math.RADIANS_PER_DEGREE 可选

每个经纬度之间的距离(以弧度为单位)。确定buffer中的位置数。

options.perPositionHeight Boolean false 可选

为每个位置使用 options.positions 的高度,而不是使用 options.height 来确定高度。

options.closeTop Boolean true 可选

当为false时,将挤出多边形的顶部打开。

options.closeBottom Boolean true 可选

为false时,挤出多边形的底部不开放。

See:
  • PolygonGeometry#createGeometry
Returns:
Type Description
PolygonGeometry
Example
// create a polygon from points
var polygon = SuperMap3D.PolygonGeometry.fromPositions({
  positions : SuperMap3D.Cartesian3.fromDegreesArray([
    -72.0, 40.0,
    -70.0, 35.0,
    -75.0, 30.0,
    -70.0, 30.0,
    -68.0, 40.0
  ])
});
var geometry = SuperMap3D.PolygonGeometry.createGeometry(polygon);

static pack(value, array, startingIndex){Array.<Number>}

将提供的实例存储到提供的数组中。

Name Type Default Description
value PolygonGeometry

要打包的值。

array Array.<Number>

要装入的数组。

startingIndex Number 0 可选

开始打包元素的数组的索引。

Returns:
Type Description
Array.<Number> 被装入的数组。

static unpack(array, startingIndex, result)

从打包数组中检索实例。

Name Type Default Description
array Array.<Number>

打包数组。

startingIndex Number 0 可选

要解压缩的元素的起始索引。

result PolygonGeometry 可选

要在其中存储结果的对象。