OpenLayers比较过滤器/对象属性

时间:2011-11-30 09:20:42

标签: javascript openlayers

在OpenLayers.Filter.Comparison中比较二级知识是否可行/是否存在解决方法?

feature.attributes / context是......像:

{'foo': 'bar', 'baz': {'lorem': 'ipsum', 'dolor': 'sit'}, 'amet': 1337}

规则如下:

var rule = new OpenLayers.Rule({
  filter: new OpenLayers.Filter.Comparison({
    type: '==',
    property: 'baz.dolor', /* <- this does not work! */
    value: 'sit'
  }),
  symbolizer: {
    graphic: true,
    graphicZIndex: 100,
    backgroundGraphicZIndex: 500,
    externalGraphic: OpenLayers.Util.getImagesLocation() + 'foo.png',
    graphicHeight: 22,
    graphicWidth: 22,
    graphicTitle: '${display_name}',
    strokeColor: '#FF0000'
  }
});

1 个答案:

答案 0 :(得分:3)

您可以使用OpenLayers.Filter.Function过滤器:

var filter = new OpenLayers.Filter.Function({
    evaluate: function(attributes) {
        return attributes.baz.dolor === 'sit';
    }
});

(未经测试的例子)