[OpenLayers-Users] How to update a
OpenLayers.Control.TransformFeature after programmatic changes ?
JS Ubei
jsubei at yahoo.fr
Thu Nov 17 04:51:31 EST 2011
Dear OpenLayers list,
I'm trying to use OpenLayers to help users to define a bounding box for geographical data search.
Users can both enter bounding box values with keyboard, or draw the zone on a OpenLayers map.
To draw the zone with OpenLayers I build a layer like this :
##############
function initMap()
{
[...]
editMap = new OpenLayers.Map("editMapDiv", {allOverlays: true});
bounds = new OpenLayers.Bounds(longMin, latMin, longMax, latMax);
boxFeature = new OpenLayers.Feature.Vector(bounds.toGeometry());
extentsEditLayer = new OpenLayers.Layer.Vector("ExtentLayer");
extentsEditLayer.addFeatures(boxFeature);
controlTransformFeature = new OpenLayers.Control.TransformFeature(extentsEditLayer, {rotate: false});
controlTransformFeature.events.on({'transform': function(evt) {updateEditExtentFromMouse();}});
controlTransformFeature.setFeature(boxFeature);
editMap.addControl(controlTransformFeature);
[...]
}
My problem is when a user enter coordinates to define the bounding box with the keyboard. When he changes a value, I intercepts the event in a function but I don't know how to refresh the bounding box handler :
##############
function onKeyboradChange()
{
boxFeature.geometry.components[0].components[0].x = longMin;
boxFeature.geometry.components[0].components[0].y = latMin;
[...]
#update the feature : ok
extentsEditLayer.drawFeature(boxFeature);
#but how to update the controlTransformFeature ?
}
Any idea ?
Thanks in advance,
Best regards,
Nono
More information about the Users
mailing list