麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - PolygonGeometry 中文文档

本文介绍下Cesium中 PolygonGeometry API的详细使用说明。

PolygonGeometry API 调用方法

new Cesium.PolygonGeometry(options)
对椭球体上多边形的描述。多边形由一个多边形层次结构(hierarchy)定义。 多边形几何可以用PrimitiveGroundPrimitive来绘制。
Name Type Description
options Object 对象,具有以下属性:
Name Type Default Description
polygonHierarchy PolygonHierarchy 包含孔洞(holes)的多边形层次结构。
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 为每个位置使用options.positions的高度,而不是使用options.height来确定高度。
closeTop Boolean true optional 如果为false,则将挤出多边形的顶部保留为打开状态。
closeBottom Boolean true optional 如果为false,则将挤出多边形的底部保留为打开状态。
arcType ArcType ArcType.GEODESIC optional 多边形边缘必须遵循的线的类型。有效的选项是ArcType.GEODESICArcType.RHUMB
示例:
// 1. 从多个点创建一个多边形
var polygon = new Cesium.PolygonGeometry({
  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.PolygonGeometry.createGeometry(polygon);
// 2. 创建一个有洞的嵌套多边形
var polygonWithHole = new Cesium.PolygonGeometry({
  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.PolygonGeometry.createGeometry(polygonWithHole);
// 3. 创建挤压多边形
var extrudedPolygon = new Cesium.PolygonGeometry({
  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.PolygonGeometry.createGeometry(extrudedPolygon);
演示Demo:
参考:
  • PolygonGeometry#createGeometry
  • PolygonGeometry#fromPositions

成员变量

packedLength : Number
用于将对象打包成数组的元素数。

内置方法

staticCesium.PolygonGeometry.computeRectangle(options, result)Rectangle
返回给定options的包围框
Name Type Description
options Object 对象,具有以下属性:
Name Type Default Description
polygonHierarchy PolygonHierarchy 包含孔洞(holes)的多边形层次结构。
granularity Number CesiumMath.RADIANS_PER_DEGREE optional 每个经度和纬度之间的距离,以弧度表示。确定采样位置的数量。
arcType ArcType ArcType.GEODESIC optional 多边形边缘必须遵循的线的类型。有效的选项是ArcType.GEODESICArcType.RHUMB
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 用作参考的椭球体。
result Rectangle optional 存储结果的对象。
返回值:
结果矩形。
staticCesium.PolygonGeometry.createGeometry(polygonGeometry)Geometry|undefined
计算多边形的几何表示,包括其顶点、索引和包围球。
Name Type Description
polygonGeometry PolygonGeometry 多边形的描述。
返回值:
计算的顶点和索引。
staticCesium.PolygonGeometry.fromPositions(options)PolygonGeometry
从位置数组中对多边形的描述。多边形几何可以用PrimitiveGroundPrimitive来绘制。
Name Type Description
options Object 对象,具有以下属性:
Name Type Default Description
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 为每个位置使用options.positions的高度,而不是使用options.height来确定高度。
closeTop Boolean true optional 如果为false,则将挤出多边形的顶部保留为打开状态。
closeBottom Boolean true optional 如果为false,则将挤出多边形的底部保留为打开状态。
arcType ArcType ArcType.GEODESIC optional 多边形边缘必须遵循的线的类型。有效的选项是ArcType.GEODESICArcType.RHUMB
返回值:
示例:
// 从多个点创建一个多边形
var polygon = Cesium.PolygonGeometry.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.PolygonGeometry.createGeometry(polygon);
参考:
  • PolygonGeometry#createGeometry
staticCesium.PolygonGeometry.pack(value, array, startingIndex)Array.<Number>
将提供的实例存储到提供的数组中。
Name Type Default Description
value PolygonGeometry 要包装的值。
array Array.<Number> 要被包装到的数组。
startingIndex Number 0 optional 开始包装元素的数组索引。
返回值:
被包装到的数组。
staticCesium.PolygonGeometry.unpack(array, startingIndex, result)PolygonGeometry
从已包装的数组中检索实例。
Name Type Default Description
array Array.<Number> 包装的数组。
startingIndex Number 0 optional 要解包的元素的起始索引。
result PolygonGeometry optional 存储结果的对象。
返回值:
修改后的结果参数或新的PolygonGeometry实例(如果没有提供)。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)