目前,两个和/或逻辑过滤器都允许两个条件(二进制):
new ol.format.ogc.filter.Or(conditionA, conditionB)
有没有简单的方法来追加N个条件?类似的东西:
new ol.format.ogc.filter.Or([conditions])
答案 0 :(得分:0)
Openlayers3目前没有这样的功能,所以我最终编写了一个简单的递归函数,如:
var ol3Filter = createOrFilter(features, 0);
.......
function createOrFilter(features, index){
if (index === features.length - 1)
return ol.format.ogc.filter.bbox('the_geom', features[index].getGeometry().getExtent(), srsProjectionStr);
return new ol.format.ogc.filter.Or(ol.format.ogc.filter.bbox('the_geom', features[index].getGeometry().getExtent(), srsProjectionStr),
createOrFilter(features, index + 1));
}