可渲染的廣告牌集合。公告牌是在3D場景中定位的視區對齊的圖像。

示例廣告牌
廣告牌使用
new BillboardCollection(options)

示例廣告牌
廣告牌使用
BillboardCollection#add
和BillboardCollection#remove
從集合中添加和刪除。集合中的公告牌自動共享具有相同標識符的圖像的紋理。
Parameters:
options
(Object)
Name | Description |
---|---|
options.modelMatrix
Matrix4
default Matrix4.IDENTITY
|
4x4轉換矩陣,將每個廣告牌從模型轉換為世界坐標。 |
options.debugShowBoundingVolume
Boolean
default false
|
僅用于調試。確定是否顯示此基元的命令的邊界球。 |
options.scene
Scene
|
必須通過使用高度參考屬性的廣告牌,或將對地球儀進行深度測試。 |
options.blendOption
BlendOption
default BlendOption.OPAQUE_AND_TRANSLUCENT
|
廣告牌混合選項。默認設置用于渲染不透明和半透明的廣告牌。但是,如果所有的廣告牌都是完全不透明的或者都是完全半透明的,那么將該技術設置為blendoption.opaque或blendoption.transparent可以將性能提高2倍。 |
Example
// Create a billboard collection with two billboards
var billboards = scene.primitives.add(new bmgl.BillboardCollection());
billboards.add({
position : new bmgl.Cartesian3(1.0, 2.0, 3.0),
image : 'url/to/image'
});
billboards.add({
position : new bmgl.Cartesian3(4.0, 5.0, 6.0),
image : 'url/to/another/image'
});
Members
blendOption : BlendOption
廣告牌混合選項。默認設置用于渲染不透明和半透明的廣告牌。但是,如果所有的廣告牌都是完全不透明的或者都是完全半透明的,那么將該技術設置為blendoption.opaque或blendoption.transparent可以將性能提高2倍。
-
Default Value:
BlendOption.OPAQUE_AND_TRANSLUCENT
debugShowBoundingVolume : Boolean
此屬性僅用于調試;它既不用于生產,也不進行優化。
為基本體中的每個draw命令繪制邊界球體。
-
Default Value:
false
debugShowTextureAtlas : Boolean
此屬性僅用于調試;它既不用于生產,也不進行優化。
將此布告欄集合的紋理圖集繪制為全屏四邊形。
-
Default Value:
false
length : Number
返回此集合中公告牌的數目。這通常與
BillboardCollection#get
一起用于遍歷集合中的所有公告牌。
modelMatrix : Matrix4
4x4轉換矩陣,將此集合中的每個公告牌從模型坐標轉換為世界坐標。當這是標識矩陣時,廣告牌以世界坐標繪制,即地球的wgs84坐標。本地參考幀可以通過提供不同的轉換矩陣來使用,如
Transforms.eastNorthUpToFixedFrame
返回的轉換矩陣。
-
Default Value:
Matrix4.IDENTITY
See:
Example:
var center = bmgl.Cartesian3.fromDegrees(-75.59777, 40.03883);
billboards.modelMatrix = bmgl.Transforms.eastNorthUpToFixedFrame(center);
billboards.add({
image : 'url/to/image',
position : new bmgl.Cartesian3(0.0, 0.0, 0.0) // center
});
billboards.add({
image : 'url/to/image',
position : new bmgl.Cartesian3(1000000.0, 0.0, 0.0) // east
});
billboards.add({
image : 'url/to/image',
position : new bmgl.Cartesian3(0.0, 1000000.0, 0.0) // north
});
billboards.add({
image : 'url/to/image',
position : new bmgl.Cartesian3(0.0, 0.0, 1000000.0) // up
});
Methods
add(options) → {Billboard}
創建具有指定初始屬性的公告牌并將其添加到集合中。將返回添加的公告牌,以便以后可以對其進行修改或從集合中刪除。
Parameters:
options
(Object)
描述公告牌屬性的模板,如示例1所示。
Examples
// Example 1: Add a billboard, specifying all the default values.
var b = billboards.add({
show : true,
position : bmgl.Cartesian3.ZERO,
pixelOffset : bmgl.Cartesian2.ZERO,
eyeOffset : bmgl.Cartesian3.ZERO,
heightReference : bmgl.HeightReference.NONE,
horizontalOrigin : bmgl.HorizontalOrigin.CENTER,
verticalOrigin : bmgl.VerticalOrigin.CENTER,
scale : 1.0,
image : 'url/to/image',
imageSubRegion : undefined,
color : bmgl.Color.WHITE,
id : undefined,
rotation : 0.0,
alignedAxis : bmgl.Cartesian3.ZERO,
width : undefined,
height : undefined,
scaleByDistance : undefined,
translucencyByDistance : undefined,
pixelOffsetScaleByDistance : undefined,
sizeInMeters : false,
distanceDisplayCondition : undefined
});
// Example 2: Specify only the billboard's cartographic position.
var b = billboards.add({
position : bmgl.Cartesian3.fromDegrees(longitude, latitude, height)
});
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
檢查此集合是否包含給定的公告牌。
Parameters:
銷毀此對象持有的WebGL資源。銷毀對象允許確定地釋放WebGL資源,而不是依賴垃圾收集器來銷毀此對象。
一旦對象被破壞,就不應使用它;調用除
一旦對象被破壞,就不應使用它;調用除
isDestroyed
以外的任何函數都將導致DeveloperError
異常。因此,將返回值(undefined
)賦給對象,如示例中所述。
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
返回集合中指定索引處的公告牌。指數以零為基礎,隨著廣告牌的增加而增加。移除一個廣告牌后,所有的廣告牌都會向左移動,從而改變它們的索引。此函數通常與
BillboardCollection#length
一起用于迭代集合中的所有公告牌。
Parameters:
index
(Number)
廣告牌的零基索引。
Example
// 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;
}
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
從集合中刪除公告牌。
Parameters:
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
從集合中刪除所有公告牌。
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
Throws
-
RuntimeError : 帶ID的圖像必須在地圖冊中。