[OpenLayers-Users] Control activate and deactivate events
Kris Geusebroek
kgeusebroek at xebia.com
Thu May 28 01:46:17 EDT 2009
Hi George,
I'm using it this way (with activate but deactivate wouldn't be hard I
think ;-))
var modifyEventListeners = { "activate": activateModifyFunction };
var modifyMode = OpenLayers.Control.ModifyFeature.RESHAPE;
modifyMode |= OpenLayers.Control.ModifyFeature.RESIZE;
modifyMode |= OpenLayers.Control.ModifyFeature.DRAG;
var modifyOptions = {
mode: modifyMode,
displayClass: "olControlMove",
eventListeners: modifyEventListeners
};
And
var activateModifyFunction = function(event) {
//do your thing
};
Cheers Kris
-----Original Message-----
From: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org]
On Behalf Of George Mu'ammar
Sent: Thursday, May 28, 2009 5:33 AM
To: users at openlayers.org
Subject: Re: [OpenLayers-Users] Control activate and deactivate events
Thanks Robert, unfortunately that does not help. I am interested in
capturing the event so I know when the user has modified a feature and
I can then use the GML.
I am caught in a spiral of problems. I should really be using the
afterfeaturemodified event on the layer but this does not work
probably because I am using styles on my layer. I get a CLASS_NAME
error that I cannot debug. I posted a message on the list but no reply
and I see nothing about it in the forum. I seem to be navigating in
unmapped territory...
Thanks for the effort!
--
George
Follow me: http://twitter.com/geo_twit
On Wed, 27 May 2009 Robert Sanson <SansonR at asurequality.com> wrote:
> Hi George
>
> Here is how I specify the controls:
>
> //Select, Draw and Modify controls - these are specific to the layer
> controls = {
> select: new OpenLayers.Control.SelectFeature(crops,
> {callbacks: {'over':feature_info}}),
> dpolygon: new
> OpenLayers.Control.DrawFeature(crops,OpenLayers.Handler.Polygon),
> modify: new OpenLayers.Control.ModifyFeature(crops),
> delf: new OpenLayers.Control.SelectFeature(crops,
> {onSelect: function(feature) {crops.destroyFeatures([feature])}})
> //delf: new OpenLayers.Control.SelectFeature(crops,
> {onSelect: function(feature)
> {feature.geometry.destroy();crops.eraseFeatures([feature])}})
> };
> for(var key in controls) {
> map.addControl(controls[key]);
> }
>
> Then I have a function that responds to radio buttons in a div
> outside the map that sets the mode and activates or deactivates the
> controls:
>
> function toggleControl(element) {
> mode = element.value;
> OpenLayers.Util.getElement('comments').innerHTML =
> "Mode:" + mode;
> if ((mode == "select") || (mode == "modify")){
> crop_style.strokeColor = "#0000ff";
> }
> else {
> crop_style.strokeColor = "#ff0000";
> }
> for(key in controls) {
> var control = controls[key];
> if(element.value == key && element.checked) {
> control.activate();
> } else {
> control.deactivate();
> }
> }
> crops.onFeatureInsert = function(feature) {
> feature.attributes.prop0 = 'new'; //This should be
> modified to get actual ID
> alert("New crop area inserted");
> }
> }
>
> Hope that helps.
>
> Robert S
>>>> Geo-rge <George at muammar.net> 28/05/2009 8:41 a.m. >>>
>
> Dear List,
>
> I am having trouble trying to capture events when the ModifyFeature
control
> is activated and deactivated.
>
> I define my control as such:
>
> modify = new
> OpenLayers.Control.ModifyFeature(lyrPlanning,{'displayClass':
> 'olControlModifyFeature',
> 'mode': OpenLayers.Control.ModifyFeature.RESHAPE |
> OpenLayers.Control.ModifyFeature.DRAG |
> OpenLayers.Control.ModifyFeature.ROTATE});
>
> I try to register the event like this:
> modify.events.register('deactivate',modify,modify_deactivated);
>
> this last line causes a syntax error!
>
> I had already defined
> function modify_deactivated() {alert('!');}"
>
> I have that feeling that I am doing something so silly I will never
get it.
> Appreciate any help
>
> George Mu'ammar
> --
> View this message in context:
>
http://n2.nabble.com/Control-activate-and-deactivate-events-tp2983592p29
83592.html
> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
> ------------------------------------------------------------------
> The contents of this email are confidential to AsureQuality. If you
> have received this communication in error please notify the sender
> immediately and delete the message and any attachments. The opinions
> expressed in this email are not necessarily those of AsureQuality.
> This message has been scanned for known viruses before delivery.
> AsureQuality supports the Unsolicited Electronic Messages Act 2007.
> If you do not wish to receive similar communications in future,
> please notify the sender of this message.
> ------------------------------------------------------------------
>
>
> This message has been scanned for malware by SurfControl plc.
> www.surfcontrol.com
>
_______________________________________________
Users mailing list
Users at openlayers.org
http://openlayers.org/mailman/listinfo/users
More information about the Users
mailing list