SuperMap iClient3D for WebGL教程(影像篇)-ImageryLayerCollection

上文中我们介绍了如何使用ImageryProvider,本章继续介绍ImageryLayerCollection。
ImageryLayerCollection是三维场景中管理影像的集合,主要用于对影像类图层进行管理。里面包含了场景中渲染的所有影像图层,也就是ImageryLayer。
一、如何获取ImageryLayerCollection
1、可以通过viewer.imageryLayers获取。
2、可以通过viewer.scene.imageryLayers获取。
二、常用方法
1、添加的方法,可以通过add和addImageryProvider方法进行添加影像图层。
2、判断图层是否存在,可以通过contains方法进行判断,不存在则返回false。
3、获取图层的方法,get和indexOf,先通过indexOf获取索引值,然后通过get获取ImageryProvider。
4、改变图层顺序的方法lower(下移一层)和raise(上移一层);lowerToBottom(移到最底层)和raiseToTop(移到最上层)
5、删除图层的方法,remove和removeAll。
6、瓦片选择pickImageryLayerFeatures,这个功能一般来说用的比较少,支持的数据类型也很少,例如,OpenStreetMap、Mapbox、Bing Maps等地图都不支持这个操作,需要ImageryProvider支持pickFeatures才会有结果,否则返回为undefined,例如ArcGisMapServerImageryProvider需要设置enablePickFeatures为true。
三、综合使用,使用两个图层制作一幅星光闪闪的地图,我们使用MapBox和SingleTileImageryProvider进行叠加

viewer = new Cesium.Viewer('cesiumContainer');
                var blackLayer= viewer.imageryLayers.addImageryProvider(new Cesium.SingleTileImageryProvider({
                    url:'./img/BlackMarble_2016_3kmg1.jpg',
                    
                }));
                var mapbox = new Cesium.MapboxImageryProvider({
                    url: "https://api.mapbox.com/v4/",
                    mapId: "mapbox.dark",
                    accessToken: "mapbox密钥",
                });
                viewer.imageryLayers.addImageryProvider(mapbox);
                blackLayer.alpha =0.3;
                blackLayer.brightness=5;
                blackLayer.transperantBackColor=Cesium.Color.BLACK;
                blackLayer.transperantBackColorTolerance=0; 
                viewer.imageryLayers.raiseToTop(blackLayer);//移动图层至顶层
灯光mapbox

你可能感兴趣的:(SuperMap iClient3D for WebGL教程(影像篇)-ImageryLayerCollection)