[OpenLayers-Users] Get LonLat of Draggable Marker
Kelvin Nicholson
kelvin at kelvinism.com
Sun Jul 26 04:15:59 EDT 2009
Brad:
That worked flawlessly - thanks!
Kelvin
On Sun, 2009-07-26 at 17:37 +1000, Brad Spencer wrote:
> Kelvin,
>
> I set up an oncomplete attribute on the drag control as so...
>
> controls = { drag: new OpenLayers.Control.DragFeature(userMarkers,
> {'onComplete': onCompleteMove} ) }
> map.addControl(controls['drag']);
> controls['drag'].activate();
>
> Then you can get access to the feature attributes such as geometry.x and
> geometry.y
>
>
> function onCompleteMove(feature)
> {
> if(feature)
> {
> // replace coordinate values in feature attributes
> var pointX = feature.geometry.x;
> var pointY = feature.geometry.y;
>
> etc....
>
> Cheers, Brad...
>
> -----Original Message-----
> From: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org] On
> Behalf Of Kelvin Nicholson
> Sent: Sunday, July 26, 2009 12:43 PM
> To: users at openlayers.org
> Subject: [OpenLayers-Users] Get LonLat of Draggable Marker
>
> Good morning/evening all:
>
> Here's a quickie, I hope. I have a small map that displays a draggable
> marker - this is working fine. I want to allow the user to move around a
> marker, and when they submit a form, it takes the lon/lat from the map
> and includes it with the other data.
>
> I'm currently using the drawFeatures DragFeature function from the
> examples (see end of email). However, I'm curious what is the best
> method to re-obtain where the marker has been dragged. Should I look at
> using a doneDragging function out of the DragFeature control, and if so,
> how would I call it? Or is there a more elegant method?
>
> Below is a snippit of the JS I'm fumbling through.
>
> Any advice is much appreciated!
>
> Kelvin
>
> window.onload = function (){ ...
>
> layer = new OpenLayers.Layer.Vector(
> "Marker Drop Shadows",
> {
> styleMap: new OpenLayers.StyleMap({
> // Set the external graphic and background
> graphic images.
> externalGraphic: "img/marker-gold.png",
> backgroundGraphic: "img/marker_shadow.png",
>
> // Makes sure the background graphic is placed
> correctly relative
> // to the external graphic.
> backgroundXOffset: 0,
> backgroundYOffset: -7,
>
> // Set the z-indexes of both graphics to make
> sure the background
> // graphics stay in the background (shadows on
> top of markers looks
> // odd; let's not do that).
> graphicZIndex: MARKER_Z_INDEX,
> backgroundGraphicZIndex: SHADOW_Z_INDEX,
>
> pointRadius: 10
> }),
> rendererOptions: {yOrdering: true}
> }
> );
>
>
> map.addLayers([mapnik, layer]);
> map.setCenter(centre, zoom);
>
> var dragFeature = new OpenLayers.Control.DragFeature(layer);
>
> map.addControl(dragFeature);
>
> dragFeature.activate();
> drawFeatures();
> }
>
> function drawFeatures() {
>
> layer.removeFeatures(layer.features);
>
> // Create features at random around the center.
> var center = map.getViewPortPxFromLonLat(map.getCenter());
>
> // Add the ordering features. These are the gold ones that
> all have the same z-index
> // and succomb to y-ordering.
> var features = [];
>
> var lonLat = new OpenLayers.LonLat({{ coords }});
> features.push(
> new OpenLayers.Feature.Vector(
> new OpenLayers.Geometry.Point(lonLat.lon,
> lonLat.lat)
> )
> );
>
> layer.addFeatures(features);
> }
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
More information about the Users
mailing list