Mmhh, I've tried but it's doesn't work, I think because the layer's attributes are different and I cannot define the same popup content.<br>I've risolved writing a second function:<br>function onFeatureSelect(event) {<br>
feature = event.feature;<br> popup = new OpenLayers.Popup.FramedCloud("chicken", <br> feature.geometry.getBounds().getCenterLonLat(),<br> null,<br> "<div><b>Nome:</b> <a href=\"scheda_comune.php?comune=" + feature.attributes.NOME + "\" target=\"eastFrame\" onClick=\"outerLayout.open('east')\">" + feature.attributes.NOME +"</a></div>",<br>
null, true, onPopupClose);<br> feature.popup = popup;<br> map.addPopup(popup);<br> }<br><br>and<br><br>function onFeatureSelect2(event) {<br> feature = event.feature;<br> popup = new OpenLayers.Popup.FramedCloud("chicken", <br>
feature.geometry.getBounds().getCenterLonLat(),<br> null,<br> "<h2>" + feature.attributes.title + "</h2>" + feature.attributes.description,<br>
null, true, onPopupClose);<br> feature.popup = popup;<br> map.addPopup(popup);<br> }<br><br>...<br>...<br>toscana.events.on({<br> "featureselected": onFeatureSelect,<br>
"featureunselected": onFeatureUnselect<br> });<br> poi.events.on({<br> "featureselected": onFeatureSelect2,<br> "featureunselected": onFeatureUnselect2<br>
});<br><br>...maybe I could write better code but ... it works!!!<br> <br>thanks <br><br>-beppe-<br><br><div class="gmail_quote">2010/5/25 Alessandro Pasotti <span dir="ltr"><<a href="mailto:ale.pas@tiscali.it">ale.pas@tiscali.it</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">In data lunedì 24 maggio 2010 15:14:54, Giuseppe Naponiello ha scritto:<br>
: > Hi all,<br>
<div><div></div><div class="h5">> in my project I've 2 layers (layer1, layer2) with different attributes.<br>
> Layer 1 is in gml format, layer2 is a txt file<br>
> When I click on the layer1, I open a popup with this code:<br>
><br>
> function onPopupClose(evt) {selectControl.unselect(feature);}<br>
><br>
> //al click su un elemento, creo e visualizzo al popup<br>
> function onFeatureSelect(event) {<br>
> feature = event.feature;<br>
> popup = new OpenLayers.Popup.FramedCloud("chicken",<br>
> feature.geometry.getBounds().getCenterLonLat(),<br>
> null,<br>
> "<div><b>Nome:</b> <a href=\"scheda_comune.php?comune=" +<br>
> feature.attributes.NOME + "\" target=\"eastFrame\"<br>
> onClick=\"outerLayout.open('east')\">" + feature.attributes.NOME<br>
> +"</a></div>",<br>
> null, true, onPopupClose);<br>
> feature.popup = popup;<br>
> map.addPopup(popup);<br>
> }<br>
><br>
> function onFeatureUnselect(event) {<br>
> feature = event.feature;<br>
> if (feature.popup){<br>
> map.removePopup(feature.popup);<br>
> feature.popup.destroy();<br>
> feature.popup = null;<br>
> }<br>
> }<br>
> ....<br>
><br>
> selectControl = new OpenLayers.Control.SelectFeature(layer1);<br>
> //{onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});<br>
> layer1.events.on({<br>
> "featureselected": onFeatureSelect,<br>
> "featureunselected": onFeatureUnselect<br>
> });<br>
><br>
><br>
> Now I'd like to display the same kind of popup for the layer2 but I don't<br>
> know what is the correct code to write!!!<br>
><br>
><br>
> thanks<br>
<br>
</div></div>Hi,<br>
<br>
I think that passing both layers to the select control should work:<br>
<br>
selectControl = new OpenLayers.Control.SelectFeature([layer1, layer2]);<br>
selectControl.events.register("featureselected", map, onFeatureSelect);<br>
selectControl.events.register("featureunselected", map, onFeatureUnselect);<br>
map.addControl(selectControl);<br>
selectControl.activate();<br>
<font color="#888888"><br>
<br>
--<br>
Alessandro Pasotti<br>
itOpen - "Open Solutions for the Net Age"<br>
w3: <a href="http://www.itopen.it" target="_blank">www.itopen.it</a><br>
Linux User# 167502<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>-beppe-<br>