GroundPolylinePrimitive

new Cesium.GroundPolylinePrimitive(options)

GroundPolylinePrimitive 表示在 Scene 中悬挂于地形或 3D Tiles 上的多线段。

仅用于包含 GroundPolylineGeometry 的 GeometryInstances。

Name Type Description
options object optional 包含以下属性的对象:
Name Type Default Description
geometryInstances Array | GeometryInstance optional 包含 GroundPolylineGeometry 的 GeometryInstances。
appearance Appearance optional 用于渲染多线段的外观。默认为白色 MaterialPolylineMaterialAppearance
show boolean true optional 确定该原语是否显示。
interleave boolean false optionaltrue 时,几何体顶点属性是交错的,这可以稍微提高渲染性能,但会增加加载时间。
releaseGeometryInstances boolean true optionaltrue 时,原语不会保留对输入 geometryInstances 的引用,以节省内存。
allowPicking boolean true optionaltrue 时,每个几何体实例只能通过 Scene#pick 被拾取。当 false 时,节省 GPU 内存。
asynchronous boolean true optional 确定原语是异步创建还是阻塞直到准备好。如果为 false,则必须首先调用 initializeTerrainHeights()。
classificationType ClassificationType ClassificationType.BOTH optional 确定是否将地形、3D Tiles 或两者进行分类。
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 或两者进行分类。
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。

static Cesium.GroundPolylinePrimitive.isSupported(scene)boolean

检查给定的场景是否支持 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 解析。
  • DeveloperError : 所有 GeometryInstances 必须具有颜色属性,以便与 GroundPolylinePrimitive 一起使用 PolylineColorAppearance。
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.