[OpenLayers-Users] display different popup for different layer
Alessandro Pasotti
ale.pas at tiscali.it
Tue May 25 06:09:55 EDT 2010
In data lunedì 24 maggio 2010 15:14:54, Giuseppe Naponiello ha scritto:
: > Hi all,
> in my project I've 2 layers (layer1, layer2) with different attributes.
> Layer 1 is in gml format, layer2 is a txt file
> When I click on the layer1, I open a popup with this code:
>
> function onPopupClose(evt) {selectControl.unselect(feature);}
>
> //al click su un elemento, creo e visualizzo al popup
> function onFeatureSelect(event) {
> feature = event.feature;
> popup = new OpenLayers.Popup.FramedCloud("chicken",
> feature.geometry.getBounds().getCenterLonLat(),
> null,
> "<div><b>Nome:</b> <a href=\"scheda_comune.php?comune=" +
> feature.attributes.NOME + "\" target=\"eastFrame\"
> onClick=\"outerLayout.open('east')\">" + feature.attributes.NOME
> +"</a></div>",
> null, true, onPopupClose);
> feature.popup = popup;
> map.addPopup(popup);
> }
>
> function onFeatureUnselect(event) {
> feature = event.feature;
> if (feature.popup){
> map.removePopup(feature.popup);
> feature.popup.destroy();
> feature.popup = null;
> }
> }
> ....
>
> selectControl = new OpenLayers.Control.SelectFeature(layer1);
> //{onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
> layer1.events.on({
> "featureselected": onFeatureSelect,
> "featureunselected": onFeatureUnselect
> });
>
>
> Now I'd like to display the same kind of popup for the layer2 but I don't
> know what is the correct code to write!!!
>
>
> thanks
Hi,
I think that passing both layers to the select control should work:
selectControl = new OpenLayers.Control.SelectFeature([layer1, layer2]);
selectControl.events.register("featureselected", map, onFeatureSelect);
selectControl.events.register("featureunselected", map, onFeatureUnselect);
map.addControl(selectControl);
selectControl.activate();
--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3: www.itopen.it
Linux User# 167502
More information about the Users
mailing list