OpenLayers比较过滤器/对象属性

OpenLayers Comparison Filter / Object Property

本文关键字:对象 属性 过滤器 比较 OpenLayers      更新时间:2023-09-26

是否有可能/是否有解决方案来比较OpenLayers.Filter.Comparison中的第二级属性?

功能。属性/上下文类似于:

{'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'
  }
});

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

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

(未测试)