Я использую OpenLayers, у меня есть слой для моей карты и один векторный слой. В этом векторном слое я использую элемент управления DrawFeature, чтобы нарисовать квадрат. У меня есть слушатель, ожидающий добавления объекта, а затем удаляющий все существующие объекты (мне нужен только один квадрат за раз), например:
polygonLayer.events.register("beforefeatureadded", feature, function(evt){
console.log("Clearing existing polygons");
console.log(polygonLayer.features.length);
polygonLayer.destroyFeatures();
polygonLayer.redraw();
});//end attempt at events registration
Когда я проверяю свой layer.features.size, я вижу, что он всегда равен 1, как я и ожидал, но квадраты на экране все еще отображаются. Даже когда я вызываю .redraw () на слое, квадраты все еще там.
Есть ли какой-то дополнительный шаг, который я пропускаю?
Редактировать: Вы можете найти мой код здесь: http://pastie.org/909644
Редактировать: Только что понял: если я нарисую квадрат из ранее существующих координат, я могу очистить его просто отлично. Кажется, это просто квадраты, нарисованные из контроллера, которые являются проблемой?