banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoDataDays 2025

#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 smile

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9972
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9972
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9972
Site web

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

 

Pied de page des forums

Copyright Association GeoRezo