Клуб API Карт

Удалить ломаную не получается

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

Здравствуйте!

Не получается удалить объект с карты. Надо удалить объекты, которые пусты (свойство _bounds == null). Вот код:

map.geoObjects.each(function(object,i) {
    var isEmpty = object.geometry.getBounds() == null
        ? 1 : 0;

    console.log('disableEditing',object)
    if (isEmpty) {
        map.geoObjects.remove(object);
    }
});

Ничего не происходит. Точнее объект в следующий раз, при итерации, в логе висит, как ни в чём не бывало. Что я не так делаю?

5 комментариев
В each, как и при любой другой итерации объекты не удаляют, это все равно, что рубить сук на котором сидишь
Павел Чернохаев
18 апреля 2016, 12:35
dimik,
Спасибо! А не подскажете, как из myPolyline.editor получить geoObject? Это возможно вообще?
Павел Чернохаев,
Откуда именно вы хотите получить?
Павел Чернохаев
18 апреля 2016, 16:39
dimik,
// Я создаю ломаную:
var myPolyline = new ymaps.Polyline([], {}, {...});

// Добавляю её на карту:
map.geoObjects.add(myPolyline);

// Включаю режим рисования:
myPolyline.editor.startDrawing();

// Отслеживаю события ['drawingstop', 'edgedragend', 'vertexdragend']:
myPolyline.editor.events.add(['drawingstop', 'edgedragend', 'vertexdragend'], function(event) {
var object = event.originalEvent.target;

// Здесь у меня в переменной object - myPolyline.editor
// Как мне получить объект myPolyline из myPolyline.editor?
// Учитывая, что объектов будет много и через переменную myPolyline получить не получится
});
Павел Чернохаев,
Редактор ничего не знает о геообъекте, только о его геометрии.