在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'
}
});
答案 0 :(得分:3)
您可以使用OpenLayers.Filter.Function
过滤器:
var filter = new OpenLayers.Filter.Function({
evaluate: function(attributes) {
return attributes.baz.dolor === 'sit';
}
});
(未经测试的例子)