[OpenLayers-Users] GML,
Point and Change the Size of the Circle...
Andreas Hocevar
ahocevar at opengeo.org
Thu Sep 4 15:28:12 EDT 2008
On Thu, Sep 4, 2008 at 6:09 PM, Kit Plummer <kitplummer at gmail.com> wrote:
> Ok, so I'm able to draw circles with size relative to the size. How
> do I keep the circle size relative to the zoom? Is it possible to
> have them scale automatically?
Yes it is. You can do fancy stuff with the OpenLayers styles
framework. You might want to try something like this:
var style = new OpenLayers.Style(OpenLayers.Util.applyDefaults({
pointRadius: "${scaledSize}"
}, OpenLayers.Feature.Vector.style["default"]), {
context: {
scaledSize: function(feature) {
return feature.layer.map.getResolution() * feature.attributes.size;
}
}
});
var styleMap = new OpenLayers.StyleMap({"default": style});
Ok, so what does this do: instead of defining the pointRadius by a
feature attribute directly (like in my previous posting), we define a
style context. In this context, we have a scaledSize function, which
returns the size from the feature's size attribute, multiplied by the
current map resolution.
For a complete example with different context functions, see
http://www.openlayers.org/dev/examples/styles-context.html.
Regards,
Andreas.
More information about the Users
mailing list