Skip to content

Instantly share code, notes, and snippets.

@Shemeikka
Created June 14, 2016 08:57
Show Gist options
  • Save Shemeikka/1e4f009cf6b36a4cbc7c9760589ff444 to your computer and use it in GitHub Desktop.
Save Shemeikka/1e4f009cf6b36a4cbc7c9760589ff444 to your computer and use it in GitHub Desktop.
Drag Leaflet.js circle
// From http://codepen.io/kad3nce/pen/bEdwOE
var map = L.map('map').setView(center, 13);
var circle = L.circle(center, 1000).addTo(map);
circle.on('mousedown', function (event) {
map.dragging.disable();
var _circle$_latlng = circle._latlng;
var circleStartingLat = _circle$_latlng.lat;
var circleStartingLng = _circle$_latlng.lng;
var _event$latlng = event.latlng;
var mouseStartingLat = _event$latlng.lat;
var mouseStartingLng = _event$latlng.lng;
map.on('mousemove', function (event) {
var _event$latlng2 = event.latlng;
var mouseNewLat = _event$latlng2.lat;
var mouseNewLng = _event$latlng2.lng;
var latDifference = mouseStartingLat - mouseNewLat;
var lngDifference = mouseStartingLng - mouseNewLng;
var center = [
circleStartingLat - latDifference,
circleStartingLng - lngDifference
];
circle.setLatLng(center);
});
});
map.on('mouseup', function () {
map.dragging.enable();
map.removeEventListener('mousemove');
});
@Shemeikka
Copy link
Author

Only issue so far: Click-event is fired after move ends.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment