new Cesium.BillboardCollection(選項)
一個可渲染的廣告牌的集合。 廣告牌是viewport-aligned 圖像定位在3 d場景。
![]()
例子的廣告牌
廣告牌從集合中添加和刪除
例子的廣告牌
廣告牌從集合中添加和刪除
BillboardCollection#add
和BillboardCollection#remove
。
廣告牌在一組自動分享紋理 對圖像相同的標識符。性能:
最佳性能,更喜歡一些集合,每個都有很多廣告牌, 許多集合只有幾廣告牌。 組織收集這樣的廣告牌 與相同的更新頻率是相同的集合,即。 廣告牌,沒有 改變應該在一個集合;應該在另一個廣告牌,改變每一幀 集合;等等。
名字 | 類型 | 描述 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
對象 |
可選對象具有以下屬性:
|
例子:
// Create a billboard collection with two billboards
var billboards = scene.primitives.add(new Cesium.BillboardCollection());
billboards.add({
position : new Cesium.Cartesian3(1.0, 2.0, 3.0),
image : 'url/to/image'
});
billboards.add({
position : new Cesium.Cartesian3(4.0, 5.0, 6.0),
image : 'url/to/another/image'
});
演示:
-
- Cesium Sandcastle Billboard
- http://cesiumjs.org/Cesium/Build/Documentation/BillboardCollection.html
看到的:
成員
該屬性僅供調試;它不適合生產使用也不優化。
默認值: 吸引每個畫的邊界範圍在原始的命令。
false
modelMatrix:Matrix4
4 x4變換矩陣,將這個集合中的每個廣告牌從模型到世界座標。 這是單位矩陣時,廣告牌在世界座標,即。 ,地球的WGS84座標。 局部座標系可以通過提供一個使用不同的變換矩陣,這樣回來了 通過
默認值: Transforms.eastNorthUpToFixedFrame
。Matrix4.IDENTITY
例子:
var center = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
billboards.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(center);
billboards.add({
image : 'url/to/image',
position : new Cesium.Cartesian3(0.0, 0.0, 0.0) // center
});
billboards.add({
image : 'url/to/image',
position : new Cesium.Cartesian3(1000000.0, 0.0, 0.0) // east
});
billboards.add({
image : 'url/to/image',
position : new Cesium.Cartesian3(0.0, 1000000.0, 0.0) // north
});
billboards.add({
image : 'url/to/image',
position : new Cesium.Cartesian3(0.0, 0.0, 1000000.0) // up
});
看到的:
方法
添加(廣告牌)→廣告牌
創建並添加一個廣告牌與指定的初始屬性集合。 添加的廣告牌,因此它可以返回修改或從集合中刪除。
性能:
調用add
預計持續時間。
然而,收集的頂點緩衝 是重寫——一個O(n)
操作,也會增加CPU
GPU開銷。 爲 最佳性能,添加調用之前儘可能多的廣告牌update
。
的名字 | 類型 | 描述 |
---|---|---|
billboard |
對象 | 可選模板描述廣告牌的屬性,如例1所示。 |
返回:
的廣告牌添加到集合中。
拋出:
-
DeveloperError:這個對象被毀,即。 、破壞()被稱爲。
例子:
// Example 1: Add a billboard, specifying all the default values.
var b = billboards.add({
show : true,
position : Cesium.Cartesian3.ZERO,
pixelOffset : Cesium.Cartesian2.ZERO,
eyeOffset : Cesium.Cartesian3.ZERO,
horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
verticalOrigin : Cesium.VerticalOrigin.CENTER,
scale : 1.0,
image : 'url/to/image',
color : Cesium.Color.WHITE,
id : undefined
});
// Example 2: Specify only the billboard's cartographic position.
var b = billboards.add({
position : Cesium.Cartesian3.fromDegrees(longitude, latitude, height)
});
看到的:
檢查是否該集合包含一個給定的廣告牌。
的名字 | 類型 | 描述 |
---|---|---|
billboard |
廣告牌 | 可選檢查的廣告牌。 |
返回:
真的如果這個集合包含的廣告牌,假的。
看到的:
破壞WebGL資源由這個對象。 摧毀一個對象可以確定的 WebGL釋放資源,而不是依靠垃圾收集器銷燬該對象。
一旦對象被摧毀,它不應使用;調用以外的任何函數
一旦對象被摧毀,它不應使用;調用以外的任何函數
isDestroyed
將導致DeveloperError
例外。
因此, 指定返回值(undefined
)對象的例子。返回:
拋出:
-
DeveloperError:這個對象被毀,即。 、破壞()被稱爲。
例子:
billboards = billboards && billboards.destroy();
看到的:
返回集合中的廣告牌在指定的索引。 指數是從零開始的 和增加的廣告牌。 刪除一個廣告牌轉移所有的廣告牌 左邊,改變他們的指標。 這個函數是常用的
BillboardCollection#length
遍歷所有的廣告牌
在收集。性能:
預計持續時間。 如果廣告牌從集合中刪除BillboardCollection#update
是不叫,一個隱式的O(n)
操作執行。
的名字 | 類型 | 描述 |
---|---|---|
index |
數量 | 廣告牌的從零開始的索引。 |
返回:
廣告牌在指定的索引。
拋出:
-
DeveloperError:這個對象被毀,即。 、破壞()被稱爲。
例子:
// Toggle the show property of every billboard in the collection
var len = billboards.length;
for (var i = 0; i < len; ++i) {
var b = billboards.get(i);
b.show = !b.show;
}
看到的:
返回:
true
如果這個對象被毀;否則,false
。看到的:
從集合中刪除一個廣告牌。
性能:
調用remove
預計持續時間。
然而,收集的頂點緩衝 是重寫——一個O(n)
操作,也會增加CPU
GPU開銷。 爲 最佳性能,消除儘可能多的廣告牌在調用之前update
。
如果您打算暫時隱藏一個廣告牌,它通常是更有效的電話Billboard#show
而不是刪除和re-adding廣告牌。
的名字 | 類型 | 描述 |
---|---|---|
billboard |
廣告牌 | 刪除的廣告牌。 |
返回:
true
如果廣告牌切除;false
如果廣告牌集合中不存在。拋出:
-
DeveloperError:這個對象被毀,即。 、破壞()被稱爲。
例子:
var b = billboards.add(...);
billboards.remove(b); // Returns true
看到的:
從集合中刪除所有的廣告牌。
性能:
O(n)
。
這是更有效的去除所有的廣告牌 從一個集合,然後添加新的完全比創建一個新的集合。
拋出:
-
DeveloperError:這個對象被毀,即。 、破壞()被稱爲。
例子:
billboards.add(...);
billboards.add(...);
billboards.removeAll();
看到的:
拋出:
-
RuntimeError:圖像與id必須在阿特拉斯。