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é ?

#1 Thu 08 July 2010 19:18

Adrien_Rutabaga
Participant occasionnel
Date d'inscription: 20 Jan 2010
Messages: 16

OpenLayers : Marker Popup et GeoRSS

Bonjour à tous!

Je me suis mis il y a peu de temps à OpenLayers et je commence déjà à m'arracher les cheveux, je vous explique :

Sur ma carte, j'affiche une couche de points provenant d'un fichier XML GeoRSS. Jusque là pas de problème, quand je clique sur un marker, la popup m'affiche le titre (title) et la description de mon objet. Dans mon fichier XML, mes points possèdent un autre attribut (date) que je souhaiterais aussi afficher dans la popup. Et la, impossible! J'ai beau bidouiller la classe GeoRss.js (qui s'occupe de l'affichage des attributs dans la popup), rien n'y fait.
Voici les modifications que j'ai apporté à GeoRss.js (@ devant les lignes que j'ai ajouté) :

Code:

...
var title = feature.attributes.title ? 
                         feature.attributes.title : "Untitled";
            
var description = feature.attributes.description ? 
                         feature.attributes.description : "No description.";
                         
@var date = feature.attributes.date ?
            @feature.attributes.date : "No date";
            
var link = feature.attributes.link ? feature.attributes.link : "";

var location = feature.geometry.getBounds().getCenterLonLat();
            
            
data.icon = this.icon == null ? 
            OpenLayers.Marker.defaultIcon() : 
                             this.icon.clone();
            
            data.popupSize = this.popupSize ? 
                             this.popupSize.clone() :
                             new OpenLayers.Size(250, 120);
            
            if (title || description || @date) {
                // we have supplemental data, store them.
                data.title = title;
                data.description = description;
                @data.date = date;
            
                var contentHTML = '<div class="olLayerGeoRSSClose">[Fermer]</div>'; 
                contentHTML += '<div class="olLayerGeoRSSTitle">';
                if (link) {
                    contentHTML += '<a class="link" href="'+link+'" target="_blank">';
                }
                contentHTML += title;
                if (link) {
                    contentHTML += '</a>';
                }
                contentHTML += '</div>';

                contentHTML += '<div style="" class="olLayerGeoRSSDescription">';
                contentHTML += description;
                contentHTML += '</div>';
        @contentHTML += '<div style="" class="olLayerGeoRSSDescription">';
                @contentHTML += date;
                @contentHTML += '</div>';
                data['popupContentHTML'] = contentHTML;                
            }
            var feature = new OpenLayers.Feature(this, location, data);
            this.features.push(feature);
            var marker = feature.createMarker();
            marker.events.register('click', feature, this.markerClick);
            this.addMarker(marker);
        }
        this.events.triggerEvent("loadend");
    },
...

La popup m'affiche toujours "No date" à la place de la date

Si quelqu'un pouvait m'éclairer ça serait vraiment sympa smile

Merci d'avance!

Hors ligne

 

Pied de page des forums

Powered by FluxBB