Основная идея состоит в том, чтобы вычислить дельту в пикселях между элементом и начальной точкой мыши и применить его при установке новых координат:
var delta = {
x: 0,
y: 0
};
function onMove(e) {
var coordsXY = {
x: e.point.x + delta.dx,
y: e.point.y + delta.dy
};
var coords = map.unproject(coordsXY);
...
}
map.on('mousedown', 'point', function(e) {
// Prevent the default map drag behavior.
e.preventDefault();
var featureXY = map.project(e.features[0].geometry.coordinates.slice());
var mouseXY = e.point;
delta = {
dx: featureXY.x - mouseXY.x,
dy: featureXY.y - mouseXY.y
};
...
}
[https://jsfiddle.net/gfs8b59c/]