Cesium支持从几个标准服务绘制和添加高分辨率图像(地图)图层。图层可以按顺序排列,并混合在一起。每一层的亮度、对比度、伽玛、色调和饱和度可以动态地改变。本节教程介绍了图层的概念以及相关的Cesuim APIs。
快速入门
我们暂时忽略细节,直接编写代码来添加一些图像层。在Sandcastle中打开Hello World示例。此示例创建一个Viewer组件,默认情况下,该组件呈现Bing Maps图层。我们可以通过向Viewer构造函数提供附加参数来指定不同的基础图层。让我们使用来自Esri ArcGIS MapServer的图层:
var viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider : new Cesium.ArcGisMapServerImageryProvider({
url : '//services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
}),
baseLayerPicker : false
});
修改样例后,按F8来运行:
我们可以通过滑动鼠标滚轮放缩,来看到实际的图层流的变化。
接下来, 添加另一个图层: NASA Black Marble imagery 基于 Tile Map Service (TMS):
var layers = viewer.scene.imageryLayers;
var blackMarble = layers.addImageryProvider(new Cesium.createTileMapServiceImageryProvider({
url : '//cesiumjs.org/tilesets/imagery/blackmarble',
maximumLevel : 8,
credit : 'Black Marble imagery courtesy NASA Earth Observatory'
}));
因为黑色大理石层是最后加上的一层,覆盖了整个地球,所以黑色大理石图层覆盖了 Esri图层。我们可以把黑色大理石图层移到底部layers.lower(blackMarble);,但是为了让我们能更好地理解这两层之间的关系,让我们把它和Esri图层混合:
blackMarble.alpha = 0.5; // 0.0 is transparent. 1.0 is opaque.
下一步,调高灯光的亮度:
blackMarble.brightness = 2.0; // > 1.0 increases brightness. < 1.0 decreases.