2

関数フィルターを使用してルールを設定しようとしています。しかし、それは機能しません。そのレイヤーの線はただ黒です。さらに重要なことに、機能をフィルタリングするために提供する関数は呼び出されません。

誰かが私が犯している間違いを指摘できますか?

これがコードです。

お手数をおかけしますが、よろしくお願いいたします。

var my_filter = new OpenLayers.Filter.Function(
    function(attributes) {
       console.log(attributes);
       var x=0; 
       return true; 
});

var ruleLow = new OpenLayers.Rule({
    filter:my_filter ,
  symbolizer: {pointRadius: 10, fillColor: "green",
               fillOpacity: 0.5, strokeColor: "green"}
});


var my_style=new OpenLayers.Style( null,ruleLow);

var my_style_map=new OpenLayers.StyleMap({
    "temporary":my_style,
    "default":my_style,
    "select":my_style
});

this.vectors= new OpenLayers.Layer.Vector(
    "Vector Layer",
    {
        styleMap:my_style_map,
        renderers:this.renderer,
    }
);
4

1 に答える 1

3

OpenLayers.Filter.Functionの使用方法を皆さんと共有できてうれしいです!! (それで私は私が持っていた問題を解決しました):私が基本的に変更しなければならなかったこと。

とにかく、ありがとう。

var my_filter = new OpenLayers.Filter.FeatureId({
    **type: OpenLayers.Filter.Function,**
    evaluate:function(attributes) {
       console.log(attributes);
       var x=0; 
       return true;

    }
});
var ruleLow = new OpenLayers.Rule({
    filter:my_filter,
  });


var my_style=new OpenLayers.Style( {pointRadius: 7, fillColor: "#FF3300",
               fillOpacity: 0.5, strokeColor: "#FF3300"},**{rules:[ruleLow]}**);

var my_style_map=new OpenLayers.StyleMap({
    "temporary":my_style,
    "default":my_style,
    "select":my_style

});
this.vectors= new OpenLayers.Layer.Vector(
    "Vector Layer",
    {
        styleMap: my_style_map, 
        renderers:this.renderer,
    }
);
于 2012-07-24T00:33:16.897 に答える