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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 13 June 2012 09:41

Winsclav
Participant occasionnel
Lieu: ÉfA
Date d'inscription: 15 Feb 2012
Messages: 23

[OpenLayers + GeoServer] Mettre les attributs d'un WFS dans une pop-up

Bonjour,
J'essaye de faire afficher les attributs de ma couche WFS dans une pop-up mais malheureusement, je bloque.
J'ai essayé différentes choses, mais soit je ne sais pas comment m'en servir, soit ça ne marche pas.
Par exemple, j'ai essayé ceci, qui vient de http://geotribu.net/node/86 :

Code:

function pop_up(e) {
   if(typeof popup!='undefined'){
         popup.destroy();
    }
    var htmlContent = "<b>GD : "+e.attributes.Numero_GD+"</b>";       
    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);
}

Que j'appelle par un contrôle comme suit dans ma fonction init() :

Code:

controls = {
attributes: new OpenLayers.Control.SelectFeature(wfsgd,
    {clickout: true, toggleKey: "ctrlKey", multiple: false, onSelect : pop_up}
);

Ce contrôle est déclenché par un bouton type radio.
Mais firebug me renvoie ces deux messages d'erreur :
Élément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C « document.getElementById() » à la place.
map.addPopup is not a function
Est-ce que quelqu'un saurait m'aider ? Est-ce que quelqu'un aurait une autre proposition à me faire ?
Toute aide est la bienvenue. Merci d'avance.

ps : la question peut aussi être trouvée sur http://www.forumsig.org/showthread.php?t=34446

*******************
REPONSE
*******************
Bon alors la réponse était toute bête, il fallait juste penser à instancier la variable map dès le début, et non pas la limiter à la fonction init(). Quand on fait pas attention, on fait des erreurs d'inattention !

Dernière modification par Winsclav (Thu 14 June 2012 07:25)

Hors ligne

 

Pied de page des forums

Powered by FluxBB