new Cesium.ImageryLayerCollection()
影像图层的有序集合。
成员变量
layerAdded : Event
向集合中添加图层时触发的事件。
事件处理程序将传递添加的图层和在其上添加的索引。
-
Default Value:
Event()
layerMoved : Event
集合中的图层位置顺序发生改变时触发的事件。
事件处理程序将传递被移动的层、在移动之后的新索引和在移动之前的旧索引。
-
Default Value:
Event()
layerRemoved : Event
从集合中移除图层时触发的事件。
事件处理程序将传递删除的图层和从中删除的索引。
-
Default Value:
Event()
layerShownOrHidden : Event
通过设置
ImageryLayer#show
属性显示或者隐藏图层时触发的事件。
-
Default Value:
Event()
length : Number
获取集合中图层的数量。
内置方法
add(layer, index)
向集合中添加一个图层。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 被添加的图层。 |
index |
Number | optional 图层的索引。如果省略则此图层添加到集合顶部。 |
异常情况:
-
DeveloperError : 如果提供索引,则索引必须大于或等于0,并且小于或等于图层数。
使用给定的ImageryProvider创建一个新图层,并将其添加到集合中。
Name | Type | Description |
---|---|---|
imageryProvider |
ImageryProvider | 用来创建图层的imageryProvider。 |
index |
Number | optional 图层的索引。如果省略则此图层添加到集合顶部。 |
返回值:
创建的新图层。
检查集合中是否包含给定的图层。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 要检查的图层。 |
返回值:
如果集合包含该图层,则为true,否则为false。
destroy()
销毁此集合中所有图层持有的WebGL资源。显式销毁此对象允许确定性地释放WebGL资源,而不是依赖于垃圾收集器。
一旦对象被销毁,它将不能在使用;调用除
一旦对象被销毁,它将不能在使用;调用除
isDestroyed
之外的任何函数都会导致DeveloperError
异常。
因此,将返回值(undefined
)赋给对象,如示例所示。
异常情况:
-
DeveloperError : 此对象被销毁了,即destroy()被调用。
示例:
layerCollection = layerCollection && layerCollection.destroy();
参考:
按照索引从集合中获取一个图层。
Name | Type | Description |
---|---|---|
index |
Number | 要检索的索引。 |
返回值:
返回索引处的图层。
返回给定图层在集合中的索引。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 需要查询的图层。 |
返回值:
返回该图层在集合中的索引,如果没在集合中返回-1。
返回值:
如果这个对象被销毁,则为true;否则,false。
lower(layer)
将图层在集合中的位置下降一位。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 需要移动的图层。 |
异常情况:
-
DeveloperError : 图层不在此集合中。
-
DeveloperError : 该对象已经被销毁,即,调用了destroy()。
lowerToBottom(layer)
将集合下降到集合底部。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 需要移动的图层。 |
异常情况:
-
DeveloperError : 图层不在此集合中。
-
DeveloperError : 该对象已经被销毁,即,调用了destroy()。
pickImageryLayerFeatures(ray, scene) → Promise.<Array.<ImageryLayerFeatureInfo>>|undefined
利用射线异步拾取图层要素,通过调用
ImageryProvider#pickFeatures
找到每个与射线相交的图层要素,
要从屏幕上的某个位置计算射线,请使用Camera.getPickRay
。
Name | Type | Description |
---|---|---|
ray |
Ray | 用于测试相交的射线。 |
scene |
Scene | 场景。 |
返回值:
一个promise,解决一个数组的要素通过拾取射线的交叉。
如果可以快速确定没有要素相交(例如,因为没有活动的图像提供期支持
ImageryProvider#pickFeatures
,
或者因为拾取射线不与表面相交),则此函数将返回undefined。
示例:
var pickRay = viewer.camera.getPickRay(windowPosition);
var featuresPromise = viewer.imageryLayers.pickImageryLayerFeatures(pickRay, viewer.scene);
if (!Cesium.defined(featuresPromise)) {
console.log('No features picked.');
} else {
Cesium.when(featuresPromise, function(features) {
// 如果所选要素可用,则在列表时异步调用此函数。
console.log('Number of features: ' + features.length);
if (features.length > 0) {
console.log('First feature name: ' + features[0].name);
}
});
}
raise(layer)
将图层在集合中的位置上升一位。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 需要移动的图层。 |
异常情况:
-
DeveloperError : 图层不在此集合中。
-
DeveloperError : 该对象已经被销毁,即,调用了destroy()。
raiseToTop(layer)
将图层提升到集合顶部。
Name | Type | Description |
---|---|---|
layer |
ImageryLayer | 需要移动的图层。 |
异常情况:
-
DeveloperError : 图层不在此集合中。
-
DeveloperError : 该对象已经被销毁,即,调用了destroy()。
如果图层存在,则将它从集合中移除。
Name | Type | Default | Description |
---|---|---|---|
layer |
ImageryLayer | 将要被移除的图层。 | |
destroy |
Boolean |
true
|
optional 是否将移除的图层销毁。 |
返回值:
如果图层在集合中并且被成功移除返回true,否则返回false。
removeAll(destroy)
移除集合中的所有图层。
Name | Type | Default | Description |
---|---|---|---|
destroy |
Boolean |
true
|
optional 是否将移除的图层销毁。 |