ThinkGeo.com    |     Documentation    |     Premium Support

Event when dragging

I have a marker overlay that I need to allow the user to drag and would like to fire an event when the markers are dragged and display the location either when the marker is dropped or possibly even while dragging similar to the mouse coordinate maptool. How can I do this?



I see another post from 3/2009, I think #5493? I am essentially trying to do the same thing. Has this been implemented since this post? If not is it scheduled to be in the next release? When is that planned? This is a critical feature for my project.

David, 
  
 Sorry for the inconvenience; it’s not implemented in current version because there is not much scenarios for us to design the APIs. Please provide us more information with these events; for example: do you want to access server side states or client side only? what information do you want in these event arguments. If you want to use it on the server side, I’m sure there will be some performance issue. Hope you understand. So please show us more requirement; then there may be a workaround for you. 
  
 Thanks, 
 Howard

Basically I am trying to replicate a forms based mapping utility I wrote myself. I would like to be able to click and drag an object/marker and display some information about the marker, including updated coordinates, in a side panel. I can do this now with the server side click event, but if I drag I have no event. An update button in the panel and possibly some indicator that position has been changed and not saved would be sufficient. So I guess client side would be good, but I'm not sure how it would work.



David,


This is a good suggestion and we’ll think about to integrate in our product. Now I have a workaround temporary; please see the code below.


var tgMap = null;

// implement this method to handle event while dragging.
var DragMarker = function(e) {
var newXY = e.xy;
// mess is a div to display the event arguments.
    $get('mess').innerHTML = newXY;
}

var OnMapCreated = function(map) {
    var dragOverlay = map.getLayer("MarkerOverlay");
    map.events.register('mousemove', dragOverlay, function(e) {
        if (this.isDragging && this.selectedMarker != null) {
            DragMarker(e);
        }
    })
    tgMap = map;
}

Please have a try and let me know if you have any questions.


Thanks,

Howard

 



Hi Howard


I have been out for a few weeks, so sorry for the delay on this. Could you provide an example of how I would handle this event? Thanks



 


 
David,
 
I think the Howard’s solution is good. The attached is a sample about it. Please click on the Marker, and then you will see the position information in the message box at top of the webform.  And any question please let us know.
 
Thanks,
 
Johnny

1829-Markers.zip (2.47 KB)