[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