PolylineCollection(折线集合)是CesiumJS中的一种集合类型,用于存储并展示多条折线对象。
创建一个折线集合对象:
var polylineCollection = new Cesium.PolylineCollection();
将折线对象添加到集合中:
var polyline = {
positions: Cesium.Cartesian3.fromDegreesArray([x1, y1, x2, y2]),
width: 5,
material: new Cesium.ColorMaterialProperty(Cesium.Color.RED)
};
polylineCollection.add(polyline);
在场景中展示折线集合:
viewer.scene.primitives.add(polylineCollection);
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
modelMatrix | Cesium.Matrix4 | undefined | 折线集合的变换矩阵。 |
debugShowBoundingVolume | Boolean | false | 是否展示包围盒。 |
length | Number | 0 | 集合中折线的数量。 |
maxPolylineWidth | Number | undefined | 折线集合中折线的最大宽度。 |
类型:Cesium.Matrix4
默认值:undefined
描述:折线集合的变换矩阵。该矩阵定义了折线集合的位置、旋转和缩放等变换。
类型:Boolean
默认值:false
描述:是否展示包围盒。包围盒是一个立方体,用于近似地表示折线集合所占的空间范围。如果要调试折线集合的位置和大小等问题,可以开启该属性以展示包围盒,便于观察。
类型:Number
默认值:0
描述:集合中折线的数量。该属性只读,可以通过该属性获取折线集合中折线的数量。
类型:Number
默认值:undefined
描述:折线集合中折线的最大宽度。如果一个折线的宽度大于该值,将使用该值作为折线的宽度。对于较大的折线集合,可以使用该属性限制折线宽度,避免性能问题。
名称 | 描述 |
---|---|
add(polyline) | 添加一个折线对象到集合中。 |
remove(polyline) | 从集合中移除指定的折线对象。 |
removeAll() | 移除集合中所有的折线对象。 |
update() | 更新集合中所有折线的属性。 |
isDestroyed() | 判断该对象是否已被销毁。 |
destroy() | 销毁该对象。 |
添加一个折线对象到集合中。
参数:
名称 | 类型 | 描述 |
---|---|---|
polyline | Object | 折线对象。该对象包括以下属性:positions (点集),width (宽度),material (材质),followSurface (是否跟随地形),distanceDisplayCondition (显示条件),classificationType (分类类型)等。 |
示例:
var polyline = {
positions: Cesium.Cartesian3.fromDegreesArray([x1, y1, x2, y2]),
width: 5,
material: new Cesium.ColorMaterialProperty(Cesium.Color.RED)
};
polylineCollection.add(polyline);
从集合中移除指定的折线对象。
参数:
名称 | 类型 | 描述 |
---|---|---|
polyline | Object | 折线对象。 |
示例:
polylineCollection.remove(polyline);
移除集合中所有的折线对象。
示例:
polylineCollection.removeAll();
更新集合中所有折线的属性。
示例:
polylineCollection.update();
判断该对象是否已被销毁。
返回值:Boolean。如果该对象已被销毁,返回true;否则返回false。
示例:
if (!polylineCollection.isDestroyed()) {
// do something
}
销毁该对象。
示例:
polylineCollection.destroy();
以下示例展示了如何创建一个折线集合,并在场景中展示多条折线:
// 创建一个折线集合
var polylineCollection = new Cesium.PolylineCollection();
// 添加多条折线到集合中
polylineCollection.add({
positions: Cesium.Cartesian3.fromDegreesArray([110.0, 45.0, 120.0, 45.0]),
width: 5,
material: new Cesium.ColorMaterialProperty(Cesium.Color.RED)
});
polylineCollection.add({
positions: Cesium.Cartesian3.fromDegreesArray([110.0, 50.0, 120.0, 50.0, 120.0, 55.0]),
width: 2,
material: new Cesium.ColorMaterialProperty(Cesium.Color.YELLOW)
});
// 在场景中展示折线集合
viewer.scene.primitives.add(polylineCollection);
Polyline
的属性进行设置,具体可以参考Polyline
的文档。TranslationRotationScale
的静态方法进行创建,该方法接受三个参数分别表示平移、旋转和缩放,具体可以参考该方法的文档。material
属性进行设置,该属性接受材质对象或者材质对象的属性。