[OpenLayers-Users] how select the right feature between 2 superimposed ?

Eric Lemoine eric.c2c at gmail.com
Wed Nov 26 13:04:57 EST 2008


Indika

So you just let the user choose what layer feature selection works for, right?

I don't know about Sebastien's case but in lots of situations this
isn't acceptable - it's a pain for the user to select the type of
objects he's going to query.

On an unrelated note, I notice that you create a new control each time
the user switches layer type, instead you could probably have two
select feature controls and activate/deactivate them based on the
selected radio button.

Eric

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


More information about the Users mailing list