0

配列を反復してすべてのレイヤーをロードしています。配列には、対応するスタイル (例{title : "layer1", style : style_a}, {title : "layer2", style : style_b}) を持つレイヤーがあります。 style_aおよびstyle_b関数で事前定義されています。レイヤーのロード中に正しいスタイルマップを指定するにはどうすればよいですか? 以下のコードを使用しようとすると、次のエラーが発生します。

"Object style_a has no method 'createSymbolizer'".

var style_a_stylemap = new OpenLayers.StyleMap ({
            'default': new OpenLayers.Style({
                strokeColor: "#6495ed",
                strokeWidth: 3,
                strokeOpacity: 0.8                  
            })                          
        });

var hydrant_stylemap = new OpenLayers.StyleMap ({
            'default': new OpenLayers.Style({
                pointRadius: 3,
                fillColor: "#9de24f",
                fillOpacity: 1,
                strokeColor: "#2da725",
                strokeWidth: 0.5            
            })                          
        });

for (var i in layer_data) {
                var layer_name = layer_data[i].title;
                //alert(layer_name);
                var layer_url = layer_data[i].url;
                //alert(layer_url);
                var layer_style = layer_data[i].style;
                //alert (layer_style);
                layer = new OpenLayers.Layer.Vector(layer_name, {
                    strategies: [new OpenLayers.Strategy.Fixed()],
                    protocol: new OpenLayers.Protocol.HTTP({
                        url: layer_url,
                        format: new OpenLayers.Format.GeoJSON({
                        })
                    }),
                    //styleMap: layer_style,
                    //...load stylemap
                });
                //turn layer off
                layer.styleMap = layer_style;
                layer.setVisibility(false);
                map.addLayer(layer);
            }
4

0 に答える 0