Hi,<br><br>Thanks for the info Eric. <br>I&#39;ll follow up on activating/deactivating the select feature control.<br>Maybe it would increase the performance of the application since the controls are created only once.<br>
<br>Indika<br><br><br><div class="gmail_quote">2008/11/26 Eric Lemoine <span dir="ltr">&lt;<a href="mailto:eric.c2c@gmail.com">eric.c2c@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Indika<br>
<br>
So you just let the user choose what layer feature selection works for, right?<br>
<br>
I don&#39;t know about Sebastien&#39;s case but in lots of situations this<br>
isn&#39;t acceptable - it&#39;s a pain for the user to select the type of<br>
objects he&#39;s going to query.<br>
<br>
On an unrelated note, I notice that you create a new control each time<br>
the user switches layer type, instead you could probably have two<br>
select feature controls and activate/deactivate them based on the<br>
selected radio button.<br>
<br>
Eric<br>
<br>
2008/11/26, Indika Tantrigoda &lt;<a href="mailto:indika85@gmail.com">indika85@gmail.com</a>&gt;:<br>
<div><div></div><div class="Wj3C7c">&gt; Hi,<br>
&gt;<br>
&gt; After looking at<br>
&gt; <a href="http://gis.ibbeck.de/ginfo/apps/OLExamples/OL26/examples/styles_unique_with_group_wfs.htmlI" target="_blank">http://gis.ibbeck.de/ginfo/apps/OLExamples/OL26/examples/styles_unique_with_group_wfs.htmlI</a><br>

&gt; managed to find a<br>
&gt; work around . I have two wfs point layers, and can activate the<br>
&gt; selectFeature for the currently selected layer via a radio button.<br>
&gt;<br>
&gt; Some of my features were superimposed on top of other layers. However when<br>
&gt; the needed layer is selected via the radio buttons the selected layer is<br>
&gt; superimposed.<br>
&gt;<br>
&gt; Heres my code<br>
&gt;<br>
&gt; //inside init()<br>
&gt;<br>
&gt; var myHTML = &quot;&lt;input type=radio name=myRadio<br>
&gt; onclick=test(2)&gt;&lt;label&gt;Cities&lt;/label&gt; &lt;img src=&#39;./img/marker-blue.png&#39;&gt;<br>
&gt; &lt;br&gt;&quot; myHTML += &quot;&lt;input type=radio name=myRadio<br>
&gt; onclick=test(3)&gt;&lt;label&gt;Stations&lt;/label&gt; &lt;img src=&#39;./img/marker-gold.png&#39;&gt;&quot;<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById(&quot;controls&quot;).innerHTML = myHTML;<br>
&gt; //<br>
&gt;<br>
&gt; //outside init()<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp;var myLayer; &nbsp;//global variable<br>
&gt; &nbsp; &nbsp; &nbsp;var myObj; &nbsp; &nbsp; //global variable<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp;function test(id) {<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myLayer =id;<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(selectControl)<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //alert(&quot;Hiiiiiiiiiiiii&quot;);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selectControl.destroy();<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selectControl = new<br>
&gt; OpenLayers.Control.SelectFeature(map.layers[id],<br>
&gt;<br>
&gt; {<br>
&gt;<br>
&gt; onSelect : onFeatureSelect,<br>
&gt;<br>
&gt; onUnselect: onFeatureUnselect<br>
&gt;<br>
&gt; });<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.addControl(selectControl);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selectControl.activate();<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //I didnt think this it necessary to unregister because the<br>
&gt; control is destroyed above<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //map.layers[id].events.unregister(&#39;featureselected&#39;,<br>
&gt; map.layers[id], regFeatureSelected);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //map.layers[id].events.unregister(&#39;featureunselected&#39;,<br>
&gt; map.layers[id], regFeatureUnselected);<br>
&gt; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function onFeatureSelect()<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var currentLayer = map.layers[myLayer];<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var obj = currentLayer.selectedFeatures[0];<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myObj = obj<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//alert(obj.attributes[&#39;name&#39;]);<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;popup = new OpenLayers.Popup.FramedCloud(&quot;chicken&quot;,<br>
&gt;<br>
&gt; obj.geometry.getBounds().getCenterLonLat(),<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;null,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;&lt;div style=&#39;font-size:.8em&#39;&gt;&quot; +<br>
&gt; obj.attributes[&#39;name&#39;] +&quot;&lt;br /&gt;&quot; + &quot;&lt;/div&gt;&quot;,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;null, true, onPopupClose);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;obj.popup = popup;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;map.addPopup(popup);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function onPopupClose(evt) {<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selectControl.unselect(myObj);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;function onFeatureUnselect()<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//alert(&quot;from regFeatureUnselected&quot;);<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.removePopup(myObj.popup);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myObj.popup.destroy();<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myObj.popup = null;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt;<br>
&gt;<br>
&gt; Hope this was helpful.<br>
&gt;<br>
&gt; Indika<br>
&gt;<br>
&gt;<br>
&gt; 2008/11/26 Eric Lemoine &lt;<a href="mailto:eric.c2c@gmail.com">eric.c2c@gmail.com</a>&gt;<br>
&gt;<br>
&gt;&gt; On Wed, Nov 26, 2008 at 10:20 AM, Sébastien Geindre<br>
&gt;&gt; &lt;<a href="mailto:sebastien.geindre@meteo.fr">sebastien.geindre@meteo.fr</a>&gt; wrote:<br>
&gt;&gt; &gt; Eric Lemoine a écrit :<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Seb, I don&#39;t understand your question. If you&#39;re trying to get the<br>
&gt;&gt; &gt;&gt; select feature control to work with multiple layers then you must know<br>
&gt;&gt; &gt;&gt; that that isn&#39;t currently supported by OpenLayers. Sorry for not<br>
&gt;&gt; &gt;&gt; understanding your question. Eric<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; you guessed it !<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; is there any workaround ?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; all features must be on the same layer ?<br>
&gt;&gt;<br>
&gt;&gt; Yes.<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Eric<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Users mailing list<br>
&gt;&gt; <a href="mailto:Users@openlayers.org">Users@openlayers.org</a><br>
&gt;&gt; <a href="http://openlayers.org/mailman/listinfo/users" target="_blank">http://openlayers.org/mailman/listinfo/users</a><br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>