Как удалить объекты после завершения рисования с помощью взаимодействия с рисованием?

#openlayers

Вопрос:

Когда я закончу рисовать с помощью взаимодействия рисования, объект отобразится на карте.

Я не хочу, чтобы эта функция отображалась на карте.

Я хочу удалить эту функцию после завершения рисования.

Я удалил функцию из события drawend, но она по — прежнему отображается на карте.

Когда следует удалить эту функцию?

 var draw = new ol.interaction.Draw({
            source: source,
            type: 'LineString',
            style: style,           
            freehandCondition: function freehandCondition(e) {
                return false;
            }
});

map.addInteraction(draw);

drawInteraction.on('drawend', function (e) {
    source.removeFeature(e.feature); // not work
});
 

Ответ №1:

Объекты рисования добавляются только в том случае, если вы укажете источник для их добавления, если вы не хотите их сохранять, вам не нужен источник

 var draw = new ol.interaction.Draw({
            type: 'LineString',
            style: style,           
            freehandCondition: function freehandCondition(e) {
                return false;
            }
});

map.addInteraction(draw);
 

Ответ №2:

Я решил это с помощью события addFeature.

 source.on("addfeature", function(e){    
                if(e.feature == global_feature)
                {
                    source.removeFeature(e.feature);
                }                           
        });