Клуб API Карт

Как программно удалить координаты(вершин) полигона?

Пост в архиве.

есть вот такой код, необходимо удалить вершины полигона по нажатию. сделал так, что удаляю объект полигона и добавляю заново. но вершины не обнуляются(

как мне быть? 

 

myPolygon = new ymaps.Polygon([], {}, {
  ******* });

 

// Добавляем многоугольник на карту. 

MapFindForm.geoObjects.add(myPolygon);

 

 // Событие на двойной клик по объекту в коллекции - тут делаем удаление
MapFindForm.geoObjects.events.add('dblclick', function (e) {

**************************
MapFindForm.geoObjects.remove(obj);
MapFindForm.geoObjects.add(myPolygon);

});

 

 

 UPD 10.03.2013 18:00 : нашел, надо использовать IPolygonGeometryAccess и получаем myPolygon.geometry.remove(0); 

правда не знаю насколько это "прямой" метод :)

 

 

 

3 комментария

что значит удалить вершины/координаты?

Удалённый пользователь
28 января 2016, 02:35

То есть, я создаю полигон с пустыми вершинами. 

Создаю события клика по кнопки(которую добавил на карту). 

В котором выполняю команду "начать редактировать" ( myPolygon.editor.startDrawing();) ....пользователь рисует полигон, кликает по тойже кнопки - "сохраняет" ( myPolygon.editor.stopEditing(); )

 

Тепрь хочу создать кнопку "Удалить" (сейчас по двойному клику по полигону), при клике по которой нужно будет "отчистить вершины" полигона.

 

 

 понял что код:

MapFindForm.geoObjects.remove(obj);
MapFindForm.geoObjects.add(myPolygon); - неверен

 

у самого  myPolygon, не нашел метода удаления вершин(( нашел тольк set(index, path), но не понял как им воспользоваться(

можно наверное делать каждый раз так:

 myPolygon = new ymaps.Polygon([], {}, {
  ******* }); 

но как по мне это кривовато) 

пс:если интересно, вот как сейчас выглядит форма http://yadi.sk/d/UG2I8sz03AW8w

пс2: это нужно если пользователь,допустим, искал что то в одном регионе, а потом нужно совершенно в другом в рамках одной сессии

 

удаление всех вершин = удалению всего полигона.

не хотите каждый раз удалять/добавлять можно просто скрывать (опция visible: false)