#1 Thu 22 April 2010 16:35
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
[OpenLayers 2.8] Comment faire un GetFeatureInfo?
Bonjours je test actuellement OpenLayers avec Geoserver, j'arrive à afficher des couches WMS, WFS, créer quelques outils (listes des couches...) mais je ne sais pas comment faire un getfeatureinfo qui me permettrait d'afficher les attribut d'un de mes objets de mes couches WFS, avez vous des exemples ou un petit topo de la démarche à suivre?
Hors ligne
#2 Thu 22 April 2010 17:21
- ILoveAmer
- Participant occasionnel
- Date d'inscription: 13 Feb 2010
- Messages: 10
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Bonjour,
Il me semble qu'on peut le faire grâce à la classe OpenLayers.Request.Get. Je ne me souviens plus trés bien comment j'avais fait mais j'avais utilisé ca. Pour plus de détail:
http://openlayers.org/dev/examples/getfeatureinfo.html
I Hope that helps
Dernière modification par ILoveAmer (Thu 22 April 2010 17:21)
Hors ligne
#3 Fri 23 April 2010 09:05
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Bon je viens d'essayer ça ne fonctionne pas , la requête de l'exemple est effectuée sur une couche WMS, la mienne est une WFS, j'arrive à sélectionner mes objets (OpenLayers.Control.SelectFeature) mais impossible d'afficher leurs attributs
Hors ligne
#4 Fri 23 April 2010 09:28
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Bonjour,
GetFeatureInfo est une requête pour un service WMS. Pour un couche WFS, les attributs sont stockés avec la géométrie. Visible via firebug dans le DOM. Lorsque vous sélectionner votre feature vous pouvez récupérer les attributs et les afficher dans une pop-up.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Fri 23 April 2010 10:11
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Effectivement j'ai essayé le tutoriel de GeoTribu sur l'affichage d'attribut dans les popus, sans résultats, ma page s'ouvre, je clique su ma couche mais pas de popup à l'horizon. Peut on afficher les attribut dans un cadre à côté de la carte?
Je viens de refaire le tuto de GeoTribu, j'ai bien un popup qui s'affiche mais mes attributs sont undefined, voici mon code:
Code:
function popUP(e) { // Je verifie qu'aucun popup n'existe deja if(typeof popup!='undefined'){ popup.destroy(); } //je definis les params de mon popup var htmlContent = "<b>Ville : "+e.attributes.NAME+"</b><br /> <b><i>Type : "+e.attributes.FEATURECLA+"</b></i>"; var size = new OpenLayers.Size(20,34); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); //j'instancie mon popup popup = new OpenLayers.Popup.FramedCloud( e.fid, e.geometry.getBounds().getCenterLonLat(), null, htmlContent, null, false, null ); //Je l'ajoute a la carte map.addPopup(popup);
Dernière modification par frankySIG (Fri 23 April 2010 10:43)
Hors ligne
#6 Fri 23 April 2010 10:51
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
problème réglé: l'erreur est humaine,j'avais tous simplement oublié le 'e' à la fin de extractattributes. tous marche bien par contre je me demande s'il est possible d'afficher mes info dans autres chose q'un popup? j'aimerai avoir un 'cadre' à côtés de ma carte.
Hors ligne
#7 Fri 23 April 2010 11:09
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Bonjour,
Lors de ton clic de souris tu récupères tes infos attributaires. C'est à toi de choisir l'endroit où tu veux placer les infos : pop-up, nouvelle fenêtre, div spécifique proche de la carte.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#8 Fri 23 April 2010 12:39
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Ok, mais comment remplacer par exemple ma fonction popup actuelle par un div?
Code:
function popUP(e) { if(typeof popup!='undefined'){ popup.destroy(); } var htmlContent = "<b>Ville : "+e.attributes.NAME+"</b><br /> <b><i>Type : "+e.attributes.FEATURECLA+"</b></i>"; var size = new OpenLayers.Size(20,34); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); popup = new OpenLayers.Popup.FramedCloud( e.fid, e.geometry.getBounds().getCenterLonLat(), null, htmlContent, null, false, null ); map.addPopup(popup);
si vous avez des liens la dessus je suis intéressé.
Hors ligne
#9 Fri 23 April 2010 13:41
Re: [OpenLayers 2.8] Comment faire un GetFeatureInfo?
Bonjour,
Je pense que cela se joue au niveau du control selectFeature (http://dev.openlayers.org/docs/files/Op … re-js.html) Il y a la méthode onSelect qui doit pouvoir t'aider : http://dev.openlayers.org/docs/files/Op … e.onSelect
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne