PolygonGeometry

new SuperMap3D.PolygonGeometry(具有以下属性的对象:)

多边形几何体类,可以使用PrimitiveGroundPrimitive进行绘制。
Name Type Default Description
具有以下属性的对象: Object
options.polygonHierarchy PolygonHierarchy optional 可以包含多孔的多边形层次结构。
options.height Number 0.0 optional 多边形和椭球表面之间的距离(以米为单位)。
options.extrudedHeight Number optional 多边形的拉伸面和椭圆体表面之间的距离。
options.vertexFormat VertexFormat VertexFormat.DEFAULT optional 要计算的顶点属性。
options.stRotation Number 0.0 optional 纹理坐标的旋转,以弧度为单位。正向旋转是逆时针方向。
options.ellipsoid Ellipsoid Ellipsoid.WGS84 optional 要作参考的椭球体。
options.granularity Number Math.RADIANS_PER_DEGREE optional 每个纬度和经度之间的距离(以弧度为单位)。确定缓冲区中的位置数。
options.perPositionHeight Boolean false optional 对每个位置使用options.options的高度,而不是使用options.height来确定高度。
options.closeTop Boolean true optional 当为false时, 使拉伸多边形的顶部保持打开状态。
options.closeBottom Boolean true optional 当为false时, 使拉伸多边形的底部保持打开状态。
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);
See:
  • PolygonGeometry#createGeometry
  • PolygonGeometry#fromPositions

Members

packedLength : Number

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

Methods

staticSuperMap3D.PolygonGeometry.createGeometry(polygonGeometry)Geometry|undefined

Computes the geometric representation of a polygon, including its vertices, indices, and a bounding sphere.
Name Type Description
polygonGeometry PolygonGeometry A description of the polygon.
Returns:
The computed vertices and indices.

staticSuperMap3D.PolygonGeometry.fromPositions(options)PolygonGeometry

A description of a polygon from an array of positions. Polygon geometry can be rendered with both Primitive and GroundPrimitive.
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.
vertexFormat VertexFormat VertexFormat.DEFAULT optional The vertex attributes to be computed.
stRotation Number 0.0 optional The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
ellipsoid Ellipsoid Ellipsoid.WGS84 optional The ellipsoid to be used as a reference.
granularity Number Math.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.
closeTop Boolean true optional When false, leaves off the top of an extruded polygon open.
closeBottom Boolean true optional When false, leaves off the bottom of an extruded polygon open.
Returns:
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);
See:
  • PolygonGeometry#createGeometry

staticSuperMap3D.PolygonGeometry.pack(value, array, startingIndex)Array.<Number>

Stores the provided instance into the provided array.
Name Type Default Description
value PolygonGeometry 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

staticSuperMap3D.PolygonGeometry.unpack(array, startingIndex, result)

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