[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