Векторный слой OpenLayers Максимальное количество объектов

Мне было интересно, можно ли ограничить количество функций, которые вы рисуете на векторном слое. Если у меня уже есть нарисованный полигон, и я нарисую другой, первый объект будет удален.

Если нет, можно ли добавить слушателя к векторному слою, чтобы я мог стереть все функции при нажатии для рисования?

Спасибо!!!


person gberg927    schedule 08.12.2011    source источник


Ответы (2)


Вы не можете установить максимальное количество функций на векторном слое, но у него есть множество событий, в которые вы можете внедрить свою собственную логику. Вот доступные события:

"beforefeatureadded", "beforefeaturesadded",
"featureadded", "featuresadded", "beforefeatureremoved",
"beforefeaturesremoved", "featureremoved", "featuresremoved",
"beforefeatureselected", "featureselected", "featureunselected", 
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
"vertexmodified", "vertexremoved", "sketchstarted",
"sketchmodified", "sketchcomplete", "refresh"

Например, вы можете использовать «beforefeatureadded»:

your_vectror_layer.events.on({'beforefeatureadded': function(){
  //Remove first feature or whatever you want to do
}});
person igorti    schedule 08.12.2011

вы можете сделать кнопку, и когда вы нажмете на нее, она удалит все функции вашего векторного слоя:

map.layers[1].removeAllFeatures();

Здесь 1 — идентификатор моего слоя (мой векторный слой — второй после слоя OSM)

Удачи !

person Mohamed    schedule 04.04.2013