PolygonGeometry

优质
小牛编辑
133浏览
2023-12-01

new LSGlobe.PolygonGeometry(options)

椭球上一个多边形的描述。这个多边形通过polygon hierarchy定义的。Polygon geometry既可以通过Primitive也可以通过GroundPrimitive来进行渲染

NameTypeDescription
options

Object

对象具有以下属性:

NameTypeDefaultDescription
polygonHierarchy

PolygonHierarchy

包含洞的一个多边形继承类(polygonHierarchy)
height

Number

0.0

optional
多边形距离椭球表面的距离(米)
extrudedHeight

Number

optional
多边形延伸面距离椭球表面的距离(米)
vertexFormat

VertexFormat

VertexFormat.DEFAULT

optional
参与计算的顶点的属性
stRotation

Number

0.0

optional
纹理坐标的旋转(弧度)。逆时针是正方向
ellipsoid

Ellipsoid

Ellipsoid.WGS84

optional
椭球被用作坐标系
granularity

Number

CesiumMath.RADIANS_PER_DEGREE

optional
表示单位经纬度之间的距离(单位是弧度)。它决定了缓存中位置的数量
perPositionHeight

Boolean

false

optional
对于每个位置点采用height参数(采用经纬高三个参数决定一个点)
closeTop

Boolean

true

optional
当值为false时,延伸多边形的顶部不封闭
closeBottom

Boolean

true

optional
当值为false时,延伸多边形的底部不封闭
Example:
// 1. 利用点创建一个多边形
var polygon = new LSGlobe.PolygonGeometry({
  polygonHierarchy : new LSGlobe.PolygonHierarchy(
    LSGlobe.Cartesian3.fromDegreesArray([
      -72.0, 40.0,
      -70.0, 35.0,
      -75.0, 30.0,
      -70.0, 30.0,
      -68.0, 40.0
    ])
  )
});
var geometry = LSGlobe.PolygonGeometry.createGeometry(polygon);
// 2. 创建一个带洞的嵌套多边形
var polygonWithHole = new LSGlobe.PolygonGeometry({
  polygonHierarchy : new LSGlobe.PolygonHierarchy(
    LSGlobe.Cartesian3.fromDegreesArray([
      -109.0, 30.0,
      -95.0, 30.0,
      -95.0, 40.0,
      -109.0, 40.0
    ]),
    [new LSGlobe.PolygonHierarchy(
      LSGlobe.Cartesian3.fromDegreesArray([
-107.0, 31.0,
-107.0, 39.0,
-97.0, 39.0,
-97.0, 31.0
      ]),
      [new LSGlobe.PolygonHierarchy(
LSGlobe.Cartesian3.fromDegreesArray([
  -105.0, 33.0,
  -99.0, 33.0,
  -99.0, 37.0,
  -105.0, 37.0
]),
[new LSGlobe.PolygonHierarchy(
  LSGlobe.Cartesian3.fromDegreesArray([
    -103.0, 34.0,
    -101.0, 34.0,
    -101.0, 36.0,
    -103.0, 36.0
  ])
)]
      )]
    )]
  )
});
var geometry = LSGlobe.PolygonGeometry.createGeometry(polygonWithHole);
// 3. 创建一个拉伸多边形
var extrudedPolygon = new LSGlobe.PolygonGeometry({
  polygonHierarchy : new LSGlobe.PolygonHierarchy(
    LSGlobe.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 = LSGlobe.PolygonGeometry.createGeometry(extrudedPolygon);
Demo:
See:
  • PolygonGeometry#createGeometry
  • PolygonGeometry#fromPositions

Members

packedLength : Number

用于将对象打包到数组的元素数量

Methods

staticLSGlobe.PolygonGeometry.createGeometry(polygonGeometry) → Geometry|undefined

计算出一个多边形的几何化表述。包括它的顶点、索引和包围球

NameTypeDescription
polygonGeometry

PolygonGeometry

多边形的描述
Returns:

计算出来的顶点和索引信息

staticLSGlobe.PolygonGeometry.fromPositions(options) → PolygonGeometry

由一组点创建的多边形的描述。Polygon geometry既可以通过Primitive也可以通过GroundPrimitive来进行渲染

NameTypeDescription
options

Object

对象具有以下属性

NameTypeDefaultDescription
positions

Array.<Cartesian3>

定义多边形的边的一组点
height

Number

0.0

optional
多边形的高度
extrudedHeight

Number

optional
多边形的拉伸高度
vertexFormat

VertexFormat

VertexFormat.DEFAULT

optional
参与计算的顶点属性
stRotation

Number

0.0

optional
纹理坐标的旋转(弧度)。逆时针是正方向
ellipsoid

Ellipsoid

Ellipsoid.WGS84

optional
参考椭球
granularity

Number

CesiumMath.RADIANS_PER_DEGREE

optional
表示单位经纬度之间的距离(单位是弧度)。它决定了缓存中位置的数量
perPositionHeight

Boolean

false

optional
对于每个位置点采用height参数(采用经纬高三个参数决定一个点)
closeTop

Boolean

true

optional
当值为false时,拉伸多边形的顶部不封闭
closeBottom

Boolean

true

optional
当值为false时,拉伸多边形的底部不封闭
Returns:
Example:
// 由点创建一个多边形
var polygon = LSGlobe.PolygonGeometry.fromPositions({
  positions : LSGlobe.Cartesian3.fromDegreesArray([
    -72.0, 40.0,
    -70.0, 35.0,
    -75.0, 30.0,
    -70.0, 30.0,
    -68.0, 40.0
  ])
});
var geometry = LSGlobe.PolygonGeometry.createGeometry(polygon);
See:
  • PolygonGeometry#createGeometry

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

由点创建一个多边形

NameTypeDefaultDescription
value

PolygonGeometry

要打包的值
array

Array.<Number>

要打包的数组
startingIndex

Number

0

optional
在数组中开始打包元素的索引
Returns:

被打包的数组

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

从打包数组中检索实例

NameTypeDefaultDescription
array

Array.<Number>

打包的数组
startingIndex

Number

0

optional
要解包的元素的起始索引
result

PolygonGeometry

optional
存储结果的对象