铯 - 将滤色镜应用于ImageryLayer

时间:2016-09-08 12:59:06

标签: cesium

有没有人试图这样做?据我所知,从文档中可以看出,似乎没有内置功能来实现这一目标。有谁知道这是否可能?是否可能是作者可能打算添加到平台的功能?

1 个答案:

答案 0 :(得分:2)

ImageryLayer documentation显示了如何控制亮度,对比度,色调,饱和度和伽玛校正。

要获得纯色的地球仪,您可以删除图像层,如下所示:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false
});

var globe = viewer.scene.globe;
globe.imageryLayers.removeAll();
globe.baseColor = Cesium.Color.LIGHTSLATEGRAY;

您可能需要从自定义图像提供程序获取“极简主义地图”(正如您在评论中提到的那样)。您可以查看Stamen Maps以获取此类示例。特别要注意的是,他们的“Toner”地图有许多子品种,其中任何一个都可以在Cesium中选择。

例如,要尝试“碳粉背景”版本,您可以使用:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false,
    imageryProvider: Cesium.createOpenStreetMapImageryProvider({
        url : 'https://stamen-tiles.a.ssl.fastly.net/toner-background/',
        credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
    })
});

编辑: @EmmanuelBuckski(OP)接受了这个想法,并将它与上面的两种技术结合起来,产生一个看起来非常好的结果!看看:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker: false
});

var globe = viewer.scene.globe;
globe.imageryLayers.removeAll();
globe.baseColor = Cesium.Color.fromCssColorString('#f3f3f3');

var tonerLayer = globe.imageryLayers.addImageryProvider(
    Cesium.createOpenStreetMapImageryProvider({
        url : 'https://stamen-tiles.a.ssl.fastly.net/toner-background/',
        credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
    })
);
tonerLayer.alpha = 0.1;