我正在使用React,OpenLayers和 https://tileserver.readthedocs.io/en/latest/index.html 为我的WebGlPointLayer获取src。 我有很多数据要在最高缩放上显示。现在我将创建一些过滤器,因此按照OpenLayers示例(https://openlayers.org/en/latest/examples/filter-points-webgl.html(,我已经对我的poject做了同样的事情。 问题是多个过滤器的实现。 过滤器由style.variables和style.filter完成。
{
variables: defaultVariables,
filter: ['between', ['get', 'i'], ['var', 'volumeMnemonicsFrom'], ['var', 'volumeMnemonicsTo']],
symbol: {
symbolType: 'circle',
size: [10, 10],
color,
rotateWithView: false,
offset: [0, 0],
},
}
是否有可能通过WebGLPointsLayer样式属性实现多个过滤器?
您需要做的是简单地使用"all"表达式并将所有过滤器定义作为其参数。像这样:
filter: ['all',
['between', ['get', 'i'], ['var', 'volumeMnemonicsFrom'], ['var', 'volumeMnemonicsTo']],
['between', ['get', 'anotherFilterField'], ['var', 'minAnotherFilterField'], ['var', 'maxAnotherFilterField']],
],
您可以在此处查看表达式的源代码。遗憾的是,在openlayers页面的WebGlPointsLayer的原始示例中缺少all
值。