Клуб API Карт

Как отследить удаление вершины ломаной в режиме редактирования ?

KDV
14 января 2011, 11:06

Казалось бы очевидный ответ использовать Polyline.setEditingOptions ({...})

А вот нет там описанного в API события по удалению вешины, также как и по ее созданию кстати.

Для отслеживания добавления новых вершин можно извратиться с onPointDragging (хотя это жутко неудобно), но вот для удаления это не поможет.

Единственное, что я сам вижу как решение - убрать пункт меню "Удалить" через menuManager и добавить свой пункт с обработчиком, но это как-то "через Китай" практически.)

PS Поиск по клубу и http://api.yandex.ru/maps/jsapi/doc/ref/reference/graphicseditingoptions.xml ничего не дало.

PPS Уважаемый Яндекс, в ближайшем обновлении API добавьте пожалуйста события для ломаной (и многоугольника) вида onPointCreate и onPointDelete в YMaps.GraphicsEditingOptions. Очень надо.

3 комментария
Подписаться на комментарии к посту
У ломаной и многоугольника есть событие PositionChange. Оно кидается при изменении в множестве точек фигуры, т.е. и при удалении точки и при добавлении новой.
Вы можете слушать его. Аргументом туда приходит ссылка на линиию/многоугольник у которого можно взять текущий набор точек и сравнить с предыдущим набором, ну и что-то сделать на основе сравнения.

Подходит вам такое решение?
На крайний случай сойдет. Пока что сделал как написал в начале через переопределение пункта меню Delete.
В моем случае я сделал точно так же.
А на PositionChange повесил пересчет длинны линии.