javascript - OpenLayers 比较过滤器/对象属性

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

最佳答案

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

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

(未经测试的例子)

关于javascript - OpenLayers 比较过滤器/对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323576/

相关文章:

javascript - 通过if条件防止双击事件

javascript - 两个 Bootstrap 选项卡同时显示为事件状态

openlayers - 使用 Nominatim 进行简单的反向地理编码

javascript - OpenLayers.Popup closeBoxCallback 未触发

javascript - 如何通过 javascript 将 SLD 样式动态添加到 WMS 层

openlayers - 如何使用谷歌地球 basemap 绘制 openlayers 要素

openlayers - 如何向 openlayers4 请求添加 http header ?

javascript - 如果没有使用 JavaScript 连接到应用程序的通知,则删除应用程序

c# - 如何使用 JavaScript 和 ASP.NET MVC 更新图像?

javascript - 为什么无法通过实例化构造函数方法将对象插入数组?