[OpenLayers-Users] How to - severable clickable WFS layers ?

Asle Benoni asle.benoni at gmail.com
Mon Jun 8 09:59:03 EDT 2009


Hi,
I just wonder how I know if I have OpenLayers 2.8? I have downloaded from
trunk but the date for OpenLayers.js is 31.03.2009. Or do I have to grab
some special files. *map.layers* is my arrayname?

I tried your suggestion but when I write:
selectControl = new OpenLayers.Control.SelectFeature(*map.layers*,{onSelect:
onFeatureSelect, onUnselect: onFeatureUnselect});
           map.addControl(selectControl);
           selectControl.activate();
           function onPopupClose(evt) {
                selectControl.unselect(selectedFeature);
            }
I get this error in Firebug and the page is blank:
*layer.renderer is undefined
*
Does this mean I am still using too old OpenLayers.js?

/asle
2009/6/8 Eric Lemoine <eric.lemoine at camptocamp.com>

> On Sunday, June 7, 2009, Asle Benoni <asle.benoni at gmail.com> wrote:
> > Hello,
> > I have a map using a MapFish framework but I think this must be a
> OpenLayers question.
> > I have several WFS layers from GeoServer where I use the attributes to
> fill the popup.  Only problem is that I can only click on markers in one
> layer at a time. The user sees all the layers, some buildings, another layer
> with churches etc. but can only click on on layer. How do I solve this? I
> have now one layer for each type of buildings and I want to be able to turn
> on and off different buildings so that is why they are in separate layers.
> Is it possible to still use many layers and bee able to click on popups from
> different layers. Or is my approach unnecessary difficult? Glad for any
> help!
> >
> > I use this for the WFS layer:
> >
> >                 createWfsLayer(
> >                     "Teknisk industri",
> >                     "
> http://naturkart.no:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A32633&BBOX=40484.8125,6401353.125,760135.8125,6687724.125",
> {
> >                         typename: "kulturminner_ns:tekniskindustrielt",
> >                         srsName: "EPSG:32633",
> >                         maxfeatures: 200},{
> >                         extractAttributes:true,
> >                         visibility:false
> >                     }
> >                  );
> >
> > ...same code for each layer....
> >
> > // Popup code, define for each layer with markers:
> >          selectControl = new
> OpenLayers.Control.SelectFeature(map.layers[0],{onSelect: onFeatureSelect,
> onUnselect: onFeatureUnselect});
> >            map.addControl(selectControl);
> >            selectControl.activate();
> >            function onPopupClose(evt) {
> >                 selectControl1.unselect(selectedFeature);
> >             }
> >          selectControl1 = new
> OpenLayers.Control.SelectFeature(map.layers[1],{onSelect: onFeatureSelect,
> onUnselect: onFeatureUnselect});
> >            map.addControl(selectControl1);
> >            selectControl1.activate();
> >            function onPopupClose(evt) {
> >                 selectControl1.unselect(selectedFeature);
> >             }
> > // etc...... for every layer with marker
>
> Instead of creating one select control for each layer create only one
> and give it all the layers:
>
> sc = new OpenLayers.Control.SelectFeature(array_of_layers, {...});
>
> you'll need OL 2.8 for this (or trunk)
>
> Cheers,
>
>
> > // Now the popup functions used:
> >
> >         function onFeatureSelect(feature) {
> >             selectedFeature = feature;
> >             popup = new OpenLayers.Popup.FramedCloud("chicken",
> >
> feature.geometry.getBounds().getCenterLonLat(),
> >                                      new OpenLayers.Size(100,200),
> >                     "<h2>" +feature.attributes.gardsnavn +
> >                     "</h2>Type: "+ feature.attributes.art +
> >                      "<br />Kommune: "+ feature.attributes.komm +
> >                      "<br />Beskrivelse<br /><a href='" +
> feature.attributes.urltilpdfark +
> >                      "' target=blank><img src='
> http://naturkart.no:8080/geoserver/images/logo.png' border='0'
> alt='naturkart'></a>", null, true, onPopupClose);
> >             feature.popup = popup;
> >             map.addPopup(popup);
> >         }
> >         function onFeatureUnselect(feature) {
> >             map.removePopup(feature.popup);
> >             feature.popup.destroy();
> >             feature.popup = null;
> >         }
> >
> >
> >
>
> --
> Eric Lemoine
>
> Camptocamp France SAS
> Savoie Technolac, BP 352
> 73377 Le Bourget du Lac, Cedex
>
> Tel : 00 33 4 79 44 44 96
> Mail : eric.lemoine at camptocamp.com
> http://www.camptocamp.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20090608/668e01b5/attachment.html


More information about the Users mailing list