美文网首页
SuperMap iClient3D for WebGL教程(影

SuperMap iClient3D for WebGL教程(影

作者: 为梦齐舞 | 来源:发表于2019-04-09 17:03 被阅读0次

    上文中我们介绍了如何使用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教程(影

          本文链接:https://www.haomeiwen.com/subject/cbcgbqtx.html