GroundPolylinePrimitive

new Cesium.GroundPolylinePrimitive(options)

GroundPolylinePrimitive 表示场景中覆盖在地形或 3D Tiles 上的折线。

仅应与包含 GroundPolylineGeometry 的 GeometryInstances 一起使用。

Name Type Description
options object optional 包含以下属性的对象:
Name Type Default Description
geometryInstances Array | GeometryInstance optional 包含 GroundPolylineGeometry 的 GeometryInstances
appearance Appearance optional 用于渲染折线的 Appearance。默认为在 PolylineMaterialAppearance 上使用白色 Material
show boolean true optional 确定此图元是否显示。
interleave boolean false optional 当为 true 时,几何体顶点属性会被交错存储,这可以略微提升渲染性能,但会增加加载时间。
releaseGeometryInstances boolean true optional 当为 true 时,图元不保留对输入 geometryInstances 的引用以节省内存。
allowPicking boolean true optional 当为 true 时,每个几何实例只能通过 Scene#pick 进行拾取。当为 false 时,可节省 GPU 内存。
asynchronous boolean true optional 确定图元是异步创建还是阻塞直到就绪。如果为 false,则必须先调用 initializeTerrainHeights()。
classificationType ClassificationType ClassificationType.BOTH optional 确定地形、3D Tiles 或两者中哪些将被分类(classified)。
debugShowBoundingVolume boolean false optional 仅用于调试。确定是否显示此图元命令的包围球。
debugShowShadowVolume boolean false optional 仅用于调试。确定是否绘制图元中每个几何的阴影体。必须在创建时设为 true 才能生效。
Example:
// 1. Draw a polyline on terrain with a basic color material

const instance = new Cesium.GeometryInstance({
  geometry : new Cesium.GroundPolylineGeometry({
     positions : Cesium.Cartesian3.fromDegreesArray([
         -112.1340164450331, 36.05494287836128,
         -112.08821010582645, 36.097804071380715
     ]),
     width : 4.0
  }),
  id : 'object returned when this instance is picked and to get/set per-instance attributes'
});

scene.groundPrimitives.add(new Cesium.GroundPolylinePrimitive({
  geometryInstances : instance,
  appearance : new Cesium.PolylineMaterialAppearance()
}));

// 2. Draw a looped polyline on terrain with per-instance color and a distance display condition.
// Distance display conditions for polylines on terrain are based on an approximate terrain height
// instead of true terrain height.

const instance2 = new Cesium.GeometryInstance({
  geometry : new Cesium.GroundPolylineGeometry({
     positions : Cesium.Cartesian3.fromDegreesArray([
         -112.1340164450331, 36.05494287836128,
         -112.08821010582645, 36.097804071380715,
         -112.13296079730024, 36.168769146801104
     ]),
     loop : true,
     width : 4.0
  }),
  attributes : {
     color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromCssColorString('green').withAlpha(0.7)),
     distanceDisplayCondition : new Cesium.DistanceDisplayConditionGeometryInstanceAttribute(1000, 30000)
  },
  id : 'object returned when this instance is picked and to get/set per-instance attributes'
});

scene.groundPrimitives.add(new Cesium.GroundPolylinePrimitive({
  geometryInstances : instance2,
  appearance : new Cesium.PolylineColorAppearance()
}));

Members

readonly allowPicking : boolean

当为 true 时,每个几何实例只能通过 Scene#pick 进行拾取。当为 false 时,可节省 GPU 内存。
Default Value: true
用于对此图元进行着色的 Appearance。每个几何实例 都使用相同的外观进行着色。某些外观(例如 PolylineColorAppearance)允许为每个实例赋予唯一的属性。
Default Value: undefined

readonly asynchronous : boolean

确定几何实例是否在 web worker 上创建并批处理。
Default Value: true
确定地形、3D Tiles 或两者中哪些将被分类(classified)。
Default Value: ClassificationType.BOTH

debugShowBoundingVolume : boolean

此属性仅用于调试;不适用于生产环境,也未经过优化。

绘制图元中每个绘制命令的包围球。

Default Value: false

readonly debugShowShadowVolume : boolean

此属性仅用于调试;不适用于生产环境,也未经过优化。

如果为 true,则绘制图元中每个几何的阴影体。

Default Value: false
使用此图元渲染的几何实例。如果图元在构造时 options.releaseGeometryInstancestrue,则此属性可能为 undefined

图元渲染后更改此属性无效。

Default Value: undefined
确定几何体顶点属性是否被交错存储,这可以略微提升渲染性能。
Default Value: false
确定图元是否已完整并准备好渲染。如果此属性为 true,则图元将在下一次调用 GroundPolylinePrimitive#update 时渲染。

readonly releaseGeometryInstances : boolean

当为 true 时,图元不保留对输入 geometryInstances 的引用以节省内存。
Default Value: true
确定图元是否显示。这会影响图元中的所有几何实例。
Default Value: true

Methods

static Cesium.GroundPolylinePrimitive.initializeTerrainHeights()Promise.<void>

初始化地形高度的最小值和最大值。仅当同步创建 GroundPolylinePrimitive 时才需要调用此方法。
Returns:
一个 Promise,在地形高度加载完成后 resolve。

static Cesium.GroundPolylinePrimitive.isSupported(scene)boolean

检查给定的 Scene 是否支持 GroundPolylinePrimitives。 GroundPolylinePrimitives 需要 WEBGL_depth_texture 扩展的支持。
Name Type Description
scene Scene 当前场景。
Returns:
当前场景是否支持 GroundPolylinePrimitives。
销毁此对象持有的 WebGL 资源。销毁对象可以实现确定性的 WebGL 资源释放,而无需依赖垃圾回收器来销毁此对象。

对象一旦被销毁,就不应再使用;调用除 isDestroyed 之外的任何函数都会导致 DeveloperError 异常。因此, 应像示例中那样将返回值(undefined)赋给该对象。

Throws:
Example:
e = e && e.destroy();
See:

getGeometryInstanceAttributes(id)object

返回 GeometryInstance 的可修改的逐实例属性。
Name Type Description
id * GeometryInstance 的 id。
Returns:
属性格式中的类型化数组;如果没有具有该 id 的实例,则为 undefined。
Throws:
  • DeveloperError :必须在调用 getGeometryInstanceAttributes 之前先调用 update。
Example:
const attributes = primitive.getGeometryInstanceAttributes('an id');
attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true);
如果此对象已被销毁则返回 true,否则返回 false。

如果此对象已被销毁,则不应再使用;调用除 isDestroyed 之外的任何函数都会导致 DeveloperError 异常。

Returns:
如果此对象已被销毁则为 true,否则为 false
See:
ViewerCesiumWidget 渲染场景以获取渲染此图元所需的绘制命令时调用。

不要直接调用此函数。此处仅为了 列出场景渲染时可能传播的异常而记录:

Throws:
  • DeveloperError :对于同步的 GroundPolylinePrimitives,必须调用 GroundPolylinePrimitives.initializeTerrainHeights() 并等待返回的 promise resolve。
  • DeveloperError :所有 GeometryInstances 都必须具有颜色属性,才能将 PolylineColorAppearance 与 GroundPolylinePrimitive 一起使用。
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。