#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
Merci d'avance!
Hors ligne