When I use drag feature, then the circles on the polygon edge has the same style. For example, this OpenLayers site.
I need to change it, I mean they need to be a different color.
What is their (cycles) style attribute?
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.
Sign up to join this communityWhen I use drag feature, then the circles on the polygon edge has the same style. For example, this OpenLayers site.
I need to change it, I mean they need to be a different color.
What is their (cycles) style attribute?
You should use vertexRenderIntent
property of ModifyFeature
control. For example:
var vertexStyle = {
strokeColor: "#ff0000",
fillColor: "#ff0000",
strokeOpacity: 1,
strokeWidth: 2,
pointRadius: 3,
graphicName: "cross"
}
var styleMap = new OpenLayers.StyleMap({
"default": OpenLayers.Feature.Vector.style['default'],
"vertex": vertexStyle
}, {extendDefault: false});
var layer = new OpenLayers.Layer.Vector('features', {styleMap: styleMap});
map.addControl(new OpenLayers.Control.ModifyFeature(layer, {vertexRenderIntent: "vertex"}));
At result we have the following style:
The approach outlined by @drnextgis is the correct one to follow. However, be aware that there is currently a bug in OpenLayers (as of version 2.11) that means if you add a unique values renderer to the StyleMap
using the addUniqueValueRules
method then the drag handles will disappear.
If you encounter this please look at my question for details of how to work around it.