如何为逻辑运算符和/或OpenLayers3设置N个条件?

时间:2016-08-15 14:02:20

标签: openlayers-3

目前,两个和/或逻辑过滤器都允许两个条件(二进制):

new ol.format.ogc.filter.Or(conditionA, conditionB)

有没有简单的方法来追加N个条件?类似的东西:

new ol.format.ogc.filter.Or([conditions])

1 个答案:

答案 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));

}