標簽的可渲染集合。標簽是定位在三維場景中的視區對齊文本。每個標簽可以有不同的字體、顏色、比例等。

示例標簽
使用
new LabelCollection(options)

示例標簽
使用
LabelCollection#add
和LabelCollection#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倍。 |
Members
blendOption : BlendOption
標簽混合選項。默認值用于渲染不透明和半透明標簽。但是,如果所有標簽都是完全不透明的或都是完全半透明的,則將該技術設置為blendoption.opaque或blendoption.transparent可將性能提高2倍。
-
Default Value:
BlendOption.OPAQUE_AND_TRANSLUCENT
debugShowBoundingVolume : Boolean
此屬性僅用于調試;它既不用于生產,也不進行優化。
為基本體中的每個draw命令繪制邊界球體。
-
Default Value:
false
length : Number
返回此集合中的標簽數。這通常與
LabelCollection#get
一起用于迭代集合中的所有標簽。
modelMatrix : Matrix4
將此集合中的每個標簽從模型坐標轉換為世界坐標的4x4轉換矩陣。當這是單位矩陣時,標簽以世界坐標繪制,即地球的wgs84坐標。本地參考幀可以通過提供不同的轉換矩陣來使用,如
Transforms.eastNorthUpToFixedFrame
返回的轉換矩陣。
-
Default Value:
Matrix4.IDENTITY
Example:
var center = bmgl.Cartesian3.fromDegrees(-75.59777, 40.03883);
labels.modelMatrix = bmgl.Transforms.eastNorthUpToFixedFrame(center);
labels.add({
position : new bmgl.Cartesian3(0.0, 0.0, 0.0),
text : 'Center'
});
labels.add({
position : new bmgl.Cartesian3(1000000.0, 0.0, 0.0),
text : 'East'
});
labels.add({
position : new bmgl.Cartesian3(0.0, 1000000.0, 0.0),
text : 'North'
});
labels.add({
position : new bmgl.Cartesian3(0.0, 0.0, 1000000.0),
text : 'Up'
});
Methods
add(options) → {Label}
創建具有指定初始屬性的標簽并將其添加到集合中。將返回添加的標簽,以便以后可以修改或從集合中刪除它。
Parameters:
options
(Object)
描述標簽屬性的模板,如示例1所示。
Examples
// Example 1: Add a label, specifying all the default values.
var l = labels.add({
show : true,
position : bmgl.Cartesian3.ZERO,
text : '',
font : '30px sans-serif',
fillColor : bmgl.Color.WHITE,
outlineColor : bmgl.Color.BLACK,
outlineWidth : 1.0,
showBackground : false,
backgroundColor : new bmgl.Color(0.165, 0.165, 0.165, 0.8),
backgroundPadding : new bmgl.Cartesian2(7, 5),
style : bmgl.LabelStyle.FILL,
pixelOffset : bmgl.Cartesian2.ZERO,
eyeOffset : bmgl.Cartesian3.ZERO,
horizontalOrigin : bmgl.HorizontalOrigin.LEFT,
verticalOrigin : bmgl.VerticalOrigin.BASELINE,
scale : 1.0,
translucencyByDistance : undefined,
pixelOffsetScaleByDistance : undefined,
heightReference : HeightReference.NONE,
distanceDisplayCondition : undefined
});
// Example 2: Specify only the label's cartographic position,
// text, and font.
var l = labels.add({
position : bmgl.Cartesian3.fromRadians(longitude, latitude, height),
text : 'Hello World',
font : '24px Helvetica',
});
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
檢查此集合是否包含給定標簽。
Parameters:
See:
銷毀此對象持有的WebGL資源。銷毀對象允許確定地釋放WebGL資源,而不是依賴垃圾收集器來銷毀此對象。
一旦對象被破壞,就不應使用它;調用除
一旦對象被破壞,就不應使用它;調用除
isDestroyed
以外的任何函數都將導致DeveloperError
異常。因此,將返回值(undefined
)賦給對象,如示例中所述。
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
返回集合中指定索引處的標簽。索引以零為基礎,并隨著標簽的添加而增加。刪除標簽后,所有標簽都會向左移動,從而更改其索引。此函數通常與
LabelCollection#length
一起使用,用于迭代集合中的所有標簽。
Parameters:
index
(Number)
廣告牌的零基索引。
Example
// Toggle the show property of every label in the collection
var len = labels.length;
for (var i = 0; i < len; ++i) {
var l = billboards.get(i);
l.show = !l.show;
}
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
從集合中刪除標簽。一旦移除,標簽就不再可用。
Parameters:
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
從集合中刪除所有標簽。
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。