Cesium - 将滤色器应用于 ImageryLayer
Cesium - Applying color filter to ImageryLayer
有人试过这样做吗?据我从文档中可以看出,似乎没有用于实现此目的的内置函数。有谁知道这是否可能?这可能是作者可能打算添加到平台的功能吗?
ImageryLayer documentation 显示了如何控制亮度、对比度、色调、饱和度和伽玛校正。
要获得纯色地球仪,您可以像这样删除图像层:
var viewer = new Cesium.Viewer('cesiumContainer', {
baseLayerPicker: false
});
var globe = viewer.scene.globe;
globe.imageryLayers.removeAll();
globe.baseColor = Cesium.Color.LIGHTSLATEGRAY;
A "minimalist map"(正如您在评论中提到的)是您可能需要从自定义图像提供商处获得的东西。您可能想查看 Stamen Maps 以获取一些示例。特别要注意的是,他们的 "Toner" 地图有许多子品种,可以在 Cesium 中选择任何一个。
例如,要试用 "Toner Background" 版本,您可以使用:
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;
有人试过这样做吗?据我从文档中可以看出,似乎没有用于实现此目的的内置函数。有谁知道这是否可能?这可能是作者可能打算添加到平台的功能吗?
ImageryLayer documentation 显示了如何控制亮度、对比度、色调、饱和度和伽玛校正。
要获得纯色地球仪,您可以像这样删除图像层:
var viewer = new Cesium.Viewer('cesiumContainer', {
baseLayerPicker: false
});
var globe = viewer.scene.globe;
globe.imageryLayers.removeAll();
globe.baseColor = Cesium.Color.LIGHTSLATEGRAY;
A "minimalist map"(正如您在评论中提到的)是您可能需要从自定义图像提供商处获得的东西。您可能想查看 Stamen Maps 以获取一些示例。特别要注意的是,他们的 "Toner" 地图有许多子品种,可以在 Cesium 中选择任何一个。
例如,要试用 "Toner Background" 版本,您可以使用:
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;