我正在开发一个对矢量图层进行动态分类的 OpenLayers 应用程序。因此,我试图遍历特定数量的主题类(类别)并为里面的每个类定义一个过滤器。
一个名为OpenLayers.Filter.Function的 OpenLayers 对象代表每个过滤器。每个 OpenLayers.Filter.Function 都会覆盖 OpenLayers 类的 evaluate() 函数。
我的代码如下所示:
var rules = new Array();
for (var i = 0; i < numClasses; i++) {
filter_x = function() {
return new OpenLayers.Filter.Function({
evaluate: function(attributes) {
// some code to define the filter
// uses specific values: array[i] & array[i+1
}
var rule_x = new OpenLayers.Rule({
filter: filter_x,
symbolizer: { fillColor: colors[i],
fillOpacity: 0.5, strokeColor: "white"}
});
rules.push(rule_x);
}
thematicStyle.addRules(rules);
不幸的是,这不起作用。似乎所有过滤器都执行最后一个循环周期的评估()函数。
你有什么想法?