Клуб API Карт

JS API 2.1 Изменение координат точки polyline при перетаскивании point

i.tugerin
9 декабря 2015, 12:25

Кратко - пытаюсь реализовать изменение координат ломаной при перетаскивании point'а , находящегося в тех же координатах, что и одна из координат ломаной.

Но в моем примере ломаная один раз дергается и все


Пример:

var mypl = new ymaps.Placemark(
e, {
iconContent: '. ' + e.join().substr(-6, 3) //Удалить после отладки
}, {
draggable: true,
iconLayout: 'default#imageWithContent',
iconImageHref: img,
iconImageSize: [16, 16],
iconImageOffset: [-8, -8]
});
collect.add(mypl);

var drag_coords = [];

mypl.events
.add('dragstart', function(e) {
// Начальные координаты точки
drag_coords = e.get('target').geometry.getCoordinates().join();
})
.add('drag', function(e) {
// Координаты точки в момент перемещения
p_coords = e.get('target').geometry.getCoordinates().join();

ln_col.each(function(el) {
ln_coord = el.geometry.getCoordinates().join();

// Если в ломаной есть координаты = начальным координатам перемещаемой точки
if (ln_coord.indexOf(drag_coords) > -1) {
ln_coord = ln_coord.replace(new RegExp(drag_coords,'g'), p_coords);

//console.log(el.geometry.getCoordinates());
//console.log([ln_coord.split(',').splice(0,2), ln_coord.split(',').splice(2,3)]);

el.geometry.setCoordinates([ln_coord.split(',').splice(0,2), ln_coord.split(',').splice(2,3)]);
}

});
...