'How to create a simple draggable marker in OpenLayers
Very simple question, how can I create a draggable marker in an OpenLayers map, and get the latlon when its been dragged. From google, it seems that you can have draggable vectors, but not draggable markers.
I've seen some references to OpenLayers.Control.DragMarker, but this doesn't seem to be in the "core" library. It's used in this example but that seems to be using a custom OpenLayers JS file, so I have no idea how to go about including that in my code.
Code thus far (to add a simple marker):
var layer = new OpenLayers.Layer.TMS( "TMS The Layer","",
{ url: '', serviceVersion: '.', layername: '.', alpha: true,
type: 'png', getURL: overlay_getTileURL
});
map.addLayers([layer]);
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
var lonLat = new OpenLayers.LonLat( -100 ,100 );
markers.addMarker(new OpenLayers.Marker(lonLat));
Solution 1:[1]
Can you change the markers with features? look this link
Solution 2:[2]
I've struggled with that a bit, until I dag into the documentation and realized that in 2022 it is very easy to do that:
const translate = new Translate({
features: new Collection([feature]),
})
translate.on('translateend', e => {
let lonLat = toLonLat(e.coordinate)
})
map.addInteraction(translate)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Community |
| Solution 2 | Nikolay Traykov |
