Performance:
为获得最佳性能,最好选择几个集合,每个集合都有许多折线,而不是多个集合,每个集合只有几条折线。组织集合,使更新频率相同的折线在同一个集合中,即不变的折线应该在一个集合中;改变每一帧的折线应该在另一个集合中;等等。
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有以下属性的对象:
|
Example:
// Create a polyline collection with two polylines
var polylines = new SuperMap3D.PolylineCollection();
polylines.add({
positions : SuperMap3D.Cartesian3.fromDegreesArray([
-75.10, 39.57,
-77.02, 38.53,
-80.50, 35.14,
-80.12, 25.46]),
width : 2
});
polylines.add({
positions : SuperMap3D.Cartesian3.fromDegreesArray([
-73.10, 37.57,
-75.02, 36.53,
-78.50, 33.14,
-78.12, 23.46]),
width : 4
});
See:
Members
-
此属性仅用于调试;它不是用于生产的,也没有经过优化。
为基元中的每个绘制命令绘制包围球。
-
Default Value:
false
-
返回此集合中多段线的数量。通常与
PolylineCollection#get
一起使用,以遍历集合中的所有多段线。 -
modelMatrix : Matrix4
-
将此集合中的每个折线从模型坐标转换为地理坐标的4x4变换矩阵。当这是单位矩阵时,折线以地理坐标绘制,即WGS84坐标。本地参考帧可以通过提供不同的转换矩阵来使用,就像
Transforms.eastNorthUpToFixedFrame
返回的那样。-
Default Value:
Matrix4.IDENTITY
Methods
-
add(polyline) → Polyline
-
创建并向集合中添加具有指定初始属性的多段线。添加的多段线将被返回,以便以后修改或从集合中删除。
Performance:
调用
add
后,调用PolylineCollection#update
和集合的顶点buffer被重写——一个0 (n)
操作,也会导致CPU到GPU的开销。为了获得最佳性能,在调用update
之前添加尽可能多的折线。Name Type Description polyline
Object optional 描述多段线属性的模板,如例 1 所示。 Returns:
添加到集合中的多段线。Throws:
-
DeveloperError : 该对象被销毁,即调用destroy()。
Example:
// Example 1: Add a polyline, specifying all the default values. var p = polylines.add({ show : true, positions : ellipsoid.cartographicArrayToCartesianArray([ SuperMap3D.Cartographic.fromDegrees(-75.10, 39.57), SuperMap3D.Cartographic.fromDegrees(-77.02, 38.53)]), width : 1 });
See:
-
-
确定此集合是否包含指定折线。
Name Type Description polyline
Polyline 要检查的折线。 Returns:
如果此集合包含折线,则为True,否则为false。 -
销毁该对象持有的 WebGL 资源。 销毁对象可以确定性地释放 WebGL 资源,而不是依赖垃圾回收器来销毁该对象。
一旦对象被销毁,就不得再使用;调用 isDestroyed 以外的任何函数都将导致DeveloperError
异常。 因此,请按照示例中的方法将返回值(undefined)赋值给对象。Returns:
Throws:
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
Example:
polylines = polylines && polylines.destroy();
See:
-
-
get(index) → Polyline
-
返回集合中位于指定索引处的折线。指数从零开始随着折线的增加而增加。 移除一条折线会移动之后的所有折线它移到左侧,改变它们的下标。此函数通常与
PolylineCollection#length
一起使用,用于迭代集合中的所有折线。Performance:
如果从集合中删除了折线,并且没有调用
PolylineCollection#update
,则执行隐式O(n)
操作。Name Type Description index
Number 折线的从零开始的索引。 Returns:
指定索引处的折线。Throws:
-
DeveloperError : 该对象被销毁,即调用destroy()。
Example:
// Toggle the show property of every polyline in the collection var len = polylines.length; for (var i = 0; i < len; ++i) { var p = polylines.get(i); p.show = !p.show; }
See:
-
-
Returns:
如果该对象已被销毁,则为 true;否则为 false -
从集合中删除折线。
Performance:
调用
remove
后,调用PolylineCollection#update
和集合的顶点buffer被重写——一个0 (n)
操作,也会导致CPU到GPU的开销。为了获得最佳性能,在调用update
之前删除尽可能多的折线。如果你想暂时隐藏一条折线,调用#show
通常比删除并重新添加折线更有效。Name Type Description polyline
Polyline 要去除的折线。 Returns:
如果折线被移除,则为True;如果在集合中未找到折线,则为False。Throws:
-
DeveloperError : 该对象被销毁,即调用destroy()。
Example:
var p = polylines.add(...); polylines.remove(p); // Returns true
See:
-
-
从集合中移除所有折线。
Performance:
O(n)从集合中删除所有折线,然后添加新的折线比完全创建一个新集合更有效。
Throws:
-
DeveloperError : 该对象被销毁,即调用destroy()。
Example:
polylines.add(...); polylines.add(...); polylines.removeAll();
See:
-
-
Throws:
-
RuntimeError : 渲染具有实例属性的原语需要顶点纹理获取支持。顶点纹理影像单元的最大数量必须大于零。
-