[英]Using a vector layer as an input to a raster source in openlayers
我正在尝试将矢量要素用作Openlayers 5中栅格源的遮罩。(我只想对用户可以动态选择的特定管辖范围内的栅格数据进行计算。)为此,我尝试使用将具有我的特征的矢量层作为栅格源的输入,然后测试每个像素以查看是否存在遮罩。
文档指出,如果将矢量层配置为选项renderMode: 'image'
,则应该可行。 但是,当栅格图层尝试运行时,出现TypeError: h.getImage is not a function
。
我的代码如下:
// The base raster data
var arc = new TileArcGISRest({
params: {
'LAYERS': "view:0"
},
url: myDataURL,
crossOrigin: 'anonymous',
});
// The vector mask in GeoJSON format
var town_vector = new ol.source.Vector({
url: 'towns.json',
format: new ol.format.GeoJSON(),
});
// The layer based on that vector
var town_layer = new ol.layer.Vector({
title: 'added Layer',
source: town_vector,
renderMode: 'image',
style: interest_style,
});
// The raster source that attempts the analysis
var summary_raster = new RasterSource({
sources: [arc, town_layer],
operation: function (pixels, data) {
var pixel = pixels[0];
var mask_pixel = pixels[1];
if (mask_pixel[0] == mask_value) {
run_calculation(pixel)
}
},
lib: {
run_calculation: run_calculation,
}
});
当我从源代码中删除“ town_layer”并消除掩蔽逻辑时,它可以完美工作。 但是,当我将“ town_layer”添加到栅格源时,会出现上述TypeError: h.getImage is not a function
。 如何“栅格化”此矢量图层并将其用作栅格源的输入?
它指出ol.source.ImageVector已从v4.5.0中弃用,建议使用ol.layer.Vector。 它对我有用。(我使用的是openlayers v6.0 )请尝试使用v6.0,它也可能对您有用 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.