The following code works
// Add styleMap to layer
var style_map = new OpenLayers.StyleMap({
externalGraphic: uri + "/img/arrow.png",
graphicWidth: 15,
graphicHeight: res[0].height,
rotation: res[0].angle
});
var lyr = new OpenLayers.Layer.Vector("name", {styleMap: style_map});
// Points without styleMap
var points = [];
points.push(
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(res[0].lng, res[0].lat)
)
);
lyr.addFeatures(points);
map.addLayer(lyr);
everything works. Different points get drawn with symbols of correct height and
rotation. But, if I don't add the styleMap definition to the lyr when creating
it, and instead, add it to the point, like so
// Layer with styleMap
var lyr = new OpenLayers.Layer.Vector("name");
// Add styleMap to each point
var style_map = new OpenLayers.StyleMap({
externalGraphic: uri + "/img/arrow.png",
graphicWidth: 15,
graphicHeight: res[0].height,
rotation: res[0].angle
});
var points = [];
points.push(
new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(res[0].lng, res[0].lat),
{styleMap: style_map}
)
);
lyr.addFeatures(points);
map.addLayer(lyr);
then nothing gets drawn. At best, this is counter-intuitive to me… the style is
per point, not per layer. At worst, this creates a problem for me that I don't
know how to solve. I am creating a layer that I want to reuse. If I follow the
first approach above, the first time around everything works well. But, on
subsequent iterations the points get drawn with the previously set style
(rotation and height).
Suggestions?
--
Puneet Kishor _______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users