我通过遍历一个数组来加载我的所有图层。在数组中有具有相应样式的图层(例如{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);
}