
Example billboards
使用
BillboardCollection#add 在收藏中添加并删除公告牌
和 BillboardCollection#remove . 收藏中的告示牌自动共享纹理
对于具有相同标识符的图像.
Performance:
For best performance, prefer a few collections, each with many billboards, to 许多藏品每本只有几块广告牌. 组织收藏,让广告牌 同一更新频率的公告牌是同一集, NT 0 更改应该放在一个集合中; 更改每个框的公告牌应该放在另一个框中 收藏; 等.
| Name | Type | Description | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
optional
下列属性的对象 :
|
Example:
// Create a billboard collection with two billboards
const 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'
});
Demo:
See:
Members
blendOption : BlendOption
-
Default Value:
-NT=0=- 翻译:
This setting only applies when a billboard's
Billboard#disableDepthTestDistance value would
否则可以进行深度测试 相机到广告牌的距离小于一个
billboard's Billboard#disableDepthTestDistance value.
绘制原始中每个绘图命令的边框.
-
Default Value:
false
绘制此 Billboard Collection 的纹理图集为全屏四角.
-
Default Value:
false
BillboardCollection#get to iterate over all the billboards
在收藏中.
modelMatrix : Matrix4
Transforms.eastNorthUpToFixedFrame.
-
Default Value:
Matrix4.IDENTITY
Example:
const 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
});
See:
-
Default Value:
true
Billboard#heightReference value
of HeightReference.CLAMP_TO_GROUND or HeightReference.CLAMP_TO_TERRAIN are depth tested
对三个关键点。 这确保了如果广告牌上的任何关键点可见,整个
告示牌将可见. 当设定为 NT 0 0 NT 1 时,此特性已禁用,并部分为 a
地形后面的广告牌被剪断.
This setting only applies when a billboard's
Billboard#disableDepthTestDistance value would
否则可以进行深度测试 相机到广告牌的距离小于一个
billboard's Billboard#disableDepthTestDistance value.
Methods
add(options) → Billboard
Performance:
Calling add is expected constant time. However, the collection's vertex buffer
is rewritten - an O(n) operation that also incurs CPU to GPU overhead. For
最佳表现,在拨打 NT 0 update NT 1 前加入尽可能多的公告牌.
| Name | Type | Description |
|---|---|---|
options |
Billboard.ConstructorOptions | optional A template describing the billboard's properties as shown in Example 1. |
Returns:
Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
Examples:
// Example 1: Add a billboard, specifying all the default values.
const b = billboards.add({
show : true,
position : Cesium.Cartesian3.ZERO,
pixelOffset : Cesium.Cartesian2.ZERO,
eyeOffset : Cesium.Cartesian3.ZERO,
heightReference : Cesium.HeightReference.NONE,
horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
verticalOrigin : Cesium.VerticalOrigin.CENTER,
scale : 1.0,
image : 'url/to/image',
imageSubRegion : undefined,
color : Cesium.Color.WHITE,
id : undefined,
rotation : 0.0,
alignedAxis : Cesium.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.
const b = billboards.add({
position : Cesium.Cartesian3.fromDegrees(longitude, latitude, height)
});
See:
| Name | Type | Description |
|---|---|---|
billboard |
Billboard | optional 要检查的广告牌. |
Returns:
Once an object is destroyed, it should not be used; calling any function other than
isDestroyed will result in a DeveloperError exception. Therefore,
assign the return value (undefined) to the object as done in the example.
Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
Example:
billboards = billboards && billboards.destroy();
See:
get(index) → Billboard
BillboardCollection#length to iterate over all the billboards
在收藏中.
Performance:
Expected constant time. If billboards were removed from the collection and
BillboardCollection#update was not called, an implicit O(n)
操作完成.
| Name | Type | Description |
|---|---|---|
index |
number | 公告牌百强单曲榜零基指数. |
Returns:
Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
Example:
// Toggle the show property of every billboard in the collection
const len = billboards.length;
for (let i = 0; i < len; ++i) {
const b = billboards.get(i);
b.show = !b.show;
}
See:
If this object was destroyed, it should not be used; calling any function other than
isDestroyed will result in a DeveloperError exception.
Returns:
true if this object was destroyed; otherwise, false.
Performance:
Calling remove is expected constant time. However, the collection's vertex buffer
is rewritten - an O(n) operation that also incurs CPU to GPU overhead. For
最佳表现,在拨打 NT 0 update NT 1 前,尽量去除公告牌.
如果你打算暂时隐藏一个广告牌,通常更高效的呼叫
Billboard#show instead of removing and re-adding the billboard.
| Name | Type | Description |
|---|---|---|
billboard |
Billboard | 告示牌要删除. |
Returns:
Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
Example:
const b = billboards.add(...);
billboards.remove(b); // Returns true
See:
Performance:
O(n). It is more efficient to remove all the billboards
从收藏开始,然后添加新收藏,而不是完全创建新收藏.
Throws:
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
Example:
billboards.add(...);
billboards.add(...);
billboards.removeAll();
See:
Viewer or CesiumWidget render the scene to
获得使这个原始化所需的绘图命令.
不要直接调用此函数 。 记录下来的只是 列出场景拍摄时可能宣传的例外情况:
Throws:
-
RuntimeError : image with id must be in the atlas.