javascript - 如何使用栅格源类型?

标签 javascript html openlayers-3

TL;DR: 如何在 OL3 中使用栅格源?如何使用它来显示任何东西? 一个简单的工作示例就完美了。

==================================================

我正在尝试使用 ol.source.Raster 来可视化高程数据。

我首先尝试做的是使整个 map 具有某种颜色,如下所示:

var bing = new ol.source.BingMaps({key: '%key%', imagerySet: 'Aerial'});
var raster = new ol.source.Raster({
    sources: [bing],
    operation: function(pixels, data) {
        return (0, 255, 0, 128);
    },
});
map = new ol.Map({
    layers: [
        new ol.layer.Tile({source: bing}),
        new ol.layer.Image({source: raster})
    ],
    target: 'ol-map',
    view: new ol.View({
        center: ol.proj.transform([-1, 52], 'EPSG:4326', 'EPSG:3857'),
        zoom: 6
    })
});

我预计整个 map 都是绿色的。

但是,这没有任何作用。如图所示,它显示了 bing 图层,但不显示栅格图层。或者,由于这段代码,栅格层可能不包含任何内容,我不知道。

我尝试查看 the examples在 ol3 网站上,他们没有提供帮助。事实上,在单击它们上的“编辑”按钮并被带到 JSFiddle 后,它们似乎没有呈现任何内容。也许这是 JSFiddle 的问题。所以我复制了假定的源代码,并尝试在 .html 文件中运行它。 ol3 map 对象已加载,但没有其他内容,很有趣。

就上下文而言,我将使用 ol3 中的地理定位 API 来计算图 block 的高程颜色并将其渲染在栅格图层中。

最佳答案

函数操作中返回的值必须是数组(可以引用链接http://openlayers.org/en/latest/apidoc/ol.html#.RasterOperation)。您可以更改光栅

var raster = new ol.source.Raster({
sources: [bing],
operation: function(pixels, data) {
    return [0, 255, 0, 128];
},
});

关于javascript - 如何使用栅格源类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39535908/

相关文章:

html - 如果标签内部有跨度,则复选框会自动取消选中

html - AngularJS 的 Internet Explorer 背景位置和背景大小

javascript - 如何在 OpenLayers 3 中通过 map 边缘绘制测地线?

javascript - 从单独的文件调用 onclick() 函数

javascript - 内容脚本不支持 chrome 设置页面(url : chrome://history/etc.)

javascript - 如何覆盖我想要隐藏的 div 中 flash 插件的 "always show"属性?

javascript - 为什么我的整个表没有在 javascript jquery 中打印

html - CSS 缩放图像在不透明度过渡时呈锯齿状/像素化

openlayers-3 - Open Layer 3 可以用作 Web 组件吗?

javascript - 修改 OpenLayers 3 中现有图层的值