PolylineCollection

new Cesium.PolylineCollection ( options )

可渲染的多段线集合。


示例多段线


使用 PolylineCollection#add PolylineCollection#remove 从集合中添加和删除折线。
Performance:

为获得最佳性能,最好选择几个集合,每个集合都有许多折线,而不是多个集合,每个集合只有几条折线。组织集合,使更新频率相同的折线在同一个集合中,即不变的折线应该在一个集合中;改变每一帧的折线应该在另一个集合中;等等。

Name Type Description
options Object 具有以下属性的 可选 对象:
姓名 类型 默认 描述
modelMatrix 矩阵4 Matrix4.IDENTITY 可选 将每条折线从模型坐标转换为世界坐标的 4x4 转换矩阵。
debugShowBoundingVolume 布尔值 false 可选 仅用于调试。确定是否显示此原语的命令的边界球。
show 布尔值 true 可选 确定是否显示集合中的折线。
Example:
// Create a polyline collection with two polylines
const polylines = new Cesium.PolylineCollection();
polylines.add({
  positions : Cesium.Cartesian3.fromDegreesArray([
    -75.10, 39.57,
    -77.02, 38.53,
    -80.50, 35.14,
    -80.12, 25.46]),
  width : 2
});

polylines.add({
  positions : Cesium.Cartesian3.fromDegreesArray([
    -73.10, 37.57,
    -75.02, 36.53,
    -78.50, 33.14,
    -78.12, 23.46]),
  width : 4
});
See:

Members

debugShowBoundingVolume : Boolean

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

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

Default Value: false
返回此集合中的折线数。这通常与 PolylineCollection#get 一起使用以遍历集合中的所有折线。
将该集合中的每条折线从模型坐标转换为世界坐标的 4x4 转换矩阵。当这是单位矩阵时,折线在世界坐标中绘制,即地球的 WGS84 坐标。可以通过提供不同的变换矩阵来使用本地参考帧,就像 Transforms.eastNorthUpToFixedFrame 返回的那样。
Default Value: Matrix4.IDENTITY
确定是否显示此集合中的折线。
Default Value: true

Methods

创建具有指定初始属性的折线并将其添加到集合中。添加的折线被返回,以便以后可以修改或从集合中删除。
Performance:

调用 add 后,调用 PolylineCollection#update 并重写集合的顶点缓冲区 - O(n) 操作也会导致 CPU 到 GPU 开销。为获得最佳性能,请在调用 update 之前添加尽可能多的折线。

Name Type Description
options Object 可选 描述多段线属性的模板,如示例 1 所示。
Returns:
添加到集合中的折线。
Throws:
Example:
// Example 1:  Add a polyline, specifying all the default values.
const p = polylines.add({
  show : true,
  positions : ellipsoid.cartographicArrayToCartesianArray([
           Cesium.Cartographic.fromDegrees(-75.10, 39.57),
           Cesium.Cartographic.fromDegrees(-77.02, 38.53)]),
  width : 1
});
See:

contains (polyline) Boolean

确定此集合是否包含指定的折线。
Name Type Description
polyline Polyline 要检查的折线。
Returns:
如果此集合包含折线,则为 true,否则为 false。
See:
销毁此对象持有的 WebGL 资源。销毁一个对象允许确定性地释放 WebGL 资源,而不是依赖垃圾收集器来销毁这个对象。

一旦一个对象被销毁,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。因此,如示例中所做的那样,将返回值 ( undefined ) 分配给对象。
Throws:
Example:
polylines = polylines && polylines.destroy();
See:
返回集合中指定索引处的折线。索引从零开始并随着折线的添加而增加。删除折线会将其后的所有折线向左移动,从而更改它们的索引。此函数通常与 PolylineCollection#length 一起使用,以遍历集合中的所有折线。
Performance:

如果从集合中删除折线并且未调用 PolylineCollection#update ,则执行隐式 O(n) 操作。

Name Type Description
index Number 折线的从零开始的索引。
Returns:
指定索引处的折线。
Throws:
Example:
// Toggle the show property of every polyline in the collection
const len = polylines.length;
for (let i = 0; i < len; ++i) {
  const p = polylines.get(i);
  p.show = !p.show;
}
See:

isDestroyed () Boolean

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

如果这个对象被破坏了,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。
Returns:
如果此对象被销毁,则为 true ;否则, false
See:

remove (polyline) Boolean

从集合中移除多段线。
Performance:

调用 remove 后,调用 PolylineCollection#update 并重写集合的顶点缓冲区 - O(n) 操作也会导致 CPU 到 GPU 开销。为了获得最佳性能,请在调用 update 之前删除尽可能多的折线。如果您打算暂时隐藏多段线,调用 Polyline#show 通常比删除并重新添加多段线更有效。

Name Type Description
polyline Polyline 要移除的折线。
Returns:
如果折线被删除,则为 true ;如果在集合中未找到折线,则返回 false
Throws:
Example:
const p = polylines.add(...);
polylines.remove(p);  // Returns true
See:
从集合中删除所有折线。
Performance:

O(n) 。从集合中删除所有折线然后添加新的折线比完全创建新集合更有效。

Throws:
Example:
polylines.add(...);
polylines.add(...);
polylines.removeAll();
See:
Viewer CesiumWidget 渲染场景以获取渲染此图元所需的绘制命令时调用。

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

Throws:
  • RuntimeError :需要顶点纹理获取支持来渲染具有每个实例属性的图元。顶点纹理图像单元的最大数量必须大于零。