麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - ImageryLayerCollection 中文文档

本文介绍下Cesium中 ImageryLayerCollection API的详细使用说明。

ImageryLayerCollection API 调用方法

new Cesium.ImageryLayerCollection()
影像图层的有序集合。
演示Demo:

成员变量

向集合中添加图层时触发的事件。 事件处理程序将传递添加的图层和在其上添加的索引。
Default Value: Event()
集合中的图层位置顺序发生改变时触发的事件。 事件处理程序将传递被移动的层、在移动之后的新索引和在移动之前的旧索引。
Default Value: Event()
从集合中移除图层时触发的事件。 事件处理程序将传递删除的图层和从中删除的索引。
Default Value: Event()
通过设置ImageryLayer#show属性显示或者隐藏图层时触发的事件。
Default Value: Event()
获取集合中图层的数量。

内置方法

向集合中添加一个图层。
Name Type Description
layer ImageryLayer 被添加的图层。
index Number optional 图层的索引。如果省略则此图层添加到集合顶部。
异常情况:
  • DeveloperError : 如果提供索引,则索引必须大于或等于0,并且小于或等于图层数。
addImageryProvider(imageryProvider, index)ImageryLayer
使用给定的ImageryProvider创建一个新图层,并将其添加到集合中。
Name Type Description
imageryProvider ImageryProvider 用来创建图层的imageryProvider。
index Number optional 图层的索引。如果省略则此图层添加到集合顶部。
返回值:
创建的新图层。
contains(layer)Boolean
检查集合中是否包含给定的图层。
Name Type Description
layer ImageryLayer 要检查的图层。
返回值:
如果集合包含该图层,则为true,否则为false。
销毁此集合中所有图层持有的WebGL资源。显式销毁此对象允许确定性地释放WebGL资源,而不是依赖于垃圾收集器。

一旦对象被销毁,它将不能在使用;调用除isDestroyed之外的任何函数都会导致DeveloperError异常。 因此,将返回值(undefined)赋给对象,如示例所示。
异常情况:
示例:
layerCollection = layerCollection && layerCollection.destroy();
参考:
按照索引从集合中获取一个图层。
Name Type Description
index Number 要检索的索引。
返回值:
返回索引处的图层。
indexOf(layer)Number
返回给定图层在集合中的索引。
Name Type Description
layer ImageryLayer 需要查询的图层。
返回值:
返回该图层在集合中的索引,如果没在集合中返回-1。
isDestroyed()Boolean
如果该对象没被销毁,返回false。

如果该对象已经被销毁, 使用isDestroyed 会触发 DeveloperError 异常。
返回值:
如果这个对象被销毁,则为true;否则,false。
参考:
将图层在集合中的位置下降一位。
Name Type Description
layer ImageryLayer 需要移动的图层。
异常情况:
将集合下降到集合底部。
Name Type Description
layer ImageryLayer 需要移动的图层。
异常情况:
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);
        }
    });
}
将图层在集合中的位置上升一位。
Name Type Description
layer ImageryLayer 需要移动的图层。
异常情况:
将图层提升到集合顶部。
Name Type Description
layer ImageryLayer 需要移动的图层。
异常情况:
remove(layer, destroy)Boolean
如果图层存在,则将它从集合中移除。
Name Type Default Description
layer ImageryLayer 将要被移除的图层。
destroy Boolean true optional 是否将移除的图层销毁。
返回值:
如果图层在集合中并且被成功移除返回true,否则返回false。
移除集合中的所有图层。
Name Type Default Description
destroy Boolean true optional 是否将移除的图层销毁。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)