0

我通过遍历一个数组来加载我的所有图层。在数组中有具有相应样式的图层(例如{title : "layer1", style : style_a}, {title : "layer2", style : style_b})。 style_astyle_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