[OpenLayers-Users] closing popup window after layer redraw
tvnc1979
tvnc1979 at gmail.com
Tue Nov 1 13:10:25 EDT 2011
each time my layer is redrawn my popups windows are closed. I would like to
left them open as long as user want. how could I make this work.
in practice when I open popup window on a feature, window closes in 20 sec when
layers is refreshed to import new features. I would like that popup window
stays open till user closes it by clicking on it.
when i remove function "beforefeatureremoved": onMarkerBeforeFeatureRemoved
popups window can not been removed after layer refresh. it does not react at all
var test = new OpenLayers.Layer.Vector( "TEST", {
styleMap: testStil,
projection: map.displayProjection,
strategies: [new OpenLayers.Strategy.Fixed
()],
protocol: new OpenLayers.Protocol.HTTP({
url: test source,
format: new OpenLayers.Format.Text({
extractStyles: false,
extractAttributes: true
})
})
});
window.setInterval(UpdateKmlLayer, 20000, test);
function UpdateKmlLayer(layer) {
layer.loaded = false;
layer.refresh({ force: true, params: { 'key': Math.random
()}
});
test.events.on({
"featureselected": onFeatureSelect,
"featureunselected": onFeatureUnselect,
"beforefeatureremoved": onMarkerBeforeFeatureRemoved
});
function onFeatureSelect(event) {
var feature = event.feature;
var content = '<table class="z">something</table>';
popup = new OpenLayers.Popup.FramedCloud("chicken",
feature.geometry.getBounds
().getCenterLonLat(),
new OpenLayers.Size(100,100),
content,
null, true, onPopupClose);
feature.popup = popup;
map.addPopup(popup);
function onFeatureUnselect(event) {
var feature = event.feature;
if(feature.popup) {
map.removePopup(feature.popup);
feature.popup.destroy();
delete feature.popup;
popup = null;
$("#o").val("");
}
}
function onMarkerBeforeFeatureRemoved(evt){
if(evt.feature.popup){
map.removePopup(evt.feature.popup);
evt.feature.popup.destroy();
delete evt.feature.popup;
}
}
}
More information about the Users
mailing list