在Openlayers中结合两个OCG过滤器

时间:2012-04-12 15:45:16

标签: javascript filter openlayers

我需要结合两个OCG过滤器。每一个都可以分开工作,但如果我使用Filter.Logical.OR组合它们,那么第一个只能工作。

var c_filter = new OpenLayers.Filter.Logical({ 
type: OpenLayers.Filter.Logical.OR, 
filters: [ 
new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.EQUAL_TO, 
    matchCase:false, 
    property: 'id', 
    value:(document.getElementById("Text")).value     
    }),   
new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.LIKE, 
    matchCase:false, 
    property: 'name', 
    value: "*" +(document.getElementById("Text")).value + "*"   
    }),   
    ] 
}); 

我使用openlayers 2.11

1 个答案:

答案 0 :(得分:1)

尝试在第二次过滤后删除逗号(,),它不应该在那里。

如果这没有用,我会尝试单独创建过滤器并将它们添加到“或”-filter:

orFilter.filters.push(equalToFilter);
orFilter.filters.push(likeFilter);