GroundPolylinePrimitive

new Cesium.GroundPolylinePrimitive ( options )

GroundPolylinePrimitive 表示覆盖在地形或 Scene 中的 3D 瓦片上的折线。

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

Name Type Description
options Object 具有以下属性的 可选 对象:
姓名 类型 默认 描述
geometryInstances 数组 | 几何实例 包含 GroundPolylineGeometry 的 可选 GeometryInstances
appearance 外貌 可选 用于渲染折线的外观。默认为 PolylineMaterialAppearance 上的白色 Material
show 布尔值 true 可选 确定是否显示此原语。
interleave 布尔值 false 可选 true 时,几何顶点属性是交错的,这可以稍微提高渲染性能但增加加载时间。
releaseGeometryInstances 布尔值 true 可选 true 时,基元不保留对输入 geometryInstances 的引用以节省内存。
allowPicking 布尔值 true 可选 true 时,每个几何实例只能通过 Scene#pick 来选择。当为 false 时,GPU 内存被保存。
asynchronous 布尔值 true 可选 确定原语是异步创建还是阻塞直到准备好。如果为 false,则必须首先调用 initializeTerrainHeights()。
classificationType 分类类型 ClassificationType.BOTH 可选 确定是对地形、3D 瓷砖还是两者都进行分类。
debugShowBoundingVolume 布尔值 false 可选 仅用于调试。确定是否显示此原语的命令的边界球。
debugShowShadowVolume 布尔值 false 可选 仅用于调试。确定是否绘制图元中每个几何体的阴影体积。必须在创建时为 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 瓷砖还是两者都进行分类。
Default Value: ClassificationType.BOTH

debugShowBoundingVolume : Boolean

该属性仅用于调试;它不是用于生产用途,也不是优化的。

为基元中的每个绘制命令绘制边界球体。

Default Value: false

readonly debugShowShadowVolume : Boolean

该属性仅用于调试;它不是用于生产用途,也不是优化的。

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

Default Value: false
使用此图元渲染的几何实例。如果在构造图元时 options.releaseGeometryInstances true ,则这可能是 undefined 的。

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

Default Value: undefined

readonly interleave : Boolean

确定几何顶点属性是否交错,这可以稍微提高渲染性能。
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:
加载地形高度后将解决的承诺。

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 的实例,则为未定义。
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);

isDestroyed () Boolean

如果此对象被销毁,则返回 true;否则为假。

如果这个对象被破坏了,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。

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

不要直接调用这个函数。记录这只是为了列出渲染场景时可能传播的异常:

Throws:
  • DeveloperError : 对于同步的 GroundPolylinePrimitives,您必须调用 GroundPolylinePrimitives.initializeTerrainHeights() 并等待返回的 Promise 解决。
  • DeveloperError :所有几何实例必须具有颜色属性才能将 PolylineColorAppearance 与 GroundPolylinePrimitive 一起使用。