
Boucles GIS 4 pour la carte des jardins
Voici la recette de fabrication :
Le plugin de Spip GIS 4 a permis de géo-localiser les jardins et de saisir leurs descriptifs.
Il ne restait plus ensuite qu’à mijoter quelques boucles Spip [1], décrites et téléchargeables ci-dessous, pour obtenir le fichier texte qui permet de positionner les marqueurs et de générer les infos-bulles. Ceci grâce à la librairie JavaScript OpenLayers [2].
Le fond de sauce, pardon le fond de carte, est assuré par OpenStreetMap projet libre et collaboratif de cartographie.
Article publié le 12 mars 2013, mis à jour le 11 juillet 2016
Le fichier texte des infos-bulles
Le script OpenLayers est inspiré de cet exemple : création marqueurs pour les points d’intérêt sur une carte glissante OpenStreetMap.
Pour afficher les marqueurs et le contenu des infos-bulles ce script appelle un fichier texte généré par la boucle ci-dessous.
Quelques explications sur cette boucle :
La balise #HTTP_HEADER
permet d’obtenir le fichier au format texte interprétable par OpenLayer. Attention aux tabulations entre lon lat title etc.
, et aux retours charriot en fin de ligne, sinon les infos-bulles refusent d’éclore.
Chaque point d’intérêt, c’est à dire chaque jardin géo-localisé, est associé à un mot-clé spipien (id_mot 13 et 14) dont le logo est utilisé comme marqueur (rouge ou bleu). Le chemin de ce logo est calculé via un modèle [3] inspiré d’un exemple donné généreusement par un contributeur sur la liste de diffusion des utilisateurs de Spip.
#HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}
lon lat title description icon iconSize iconOffset
<BOUCLE_mots(MOTS){gis}{id_mot IN 13,14}{par code_postal}>#LON #LAT [(#TITRE_GIS|supprimer_numero)] [(#DESCRIPTIF_GIS|?{#DESCRIPTIF_GIS, "<p>Toute information bienvenue...</p>"})] [(#MODELE{logo, mot=#ID_MOT})] 25,40 0,0 0,0
</BOUCLE_mots>
Le tableau récapitulatif
Il utilise les mêmes balises que la carte, mais cette fois-ci dans un modèle inséré dans l’article « article 4 ». L’id_groupe
correspond au groupe de mots-clé « Jardins ».
<BOUCLE_groupe-mot(MOTS){id_groupe=4}{par num titre}>
<table class="spip">
<caption>[(#LOGO_MOT|replace{class="spip_logos", })]#TITRE</caption>
<thead>
<tr class='row_first'>
<th style="width: 25%">Nom du jardin</th>
<th style="width: 25%">Adresse<br />Coordonnées géographiques</th>
<th style="width: 50%"><p>Descriptif</p></th>
</tr>
</thead>
<tbody>
<BOUCLE_jardins(MOTS){gis}{id_mot}{par code_postal}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd odd,row_even even})]">
<td style="width: 25%">[(#TITRE_GIS|supprimer_numero)]</td>
<td style="width: 25%">[(#ADRESSE|supprimer_tags)] [(#VILLE)] [(#CODE_POSTAL|supprimer_tags)]<br /> [(#LAT|round{4})], [(#LON|round{4})]</td>
<td style="width: 50%">[(#DESCRIPTIF_GIS|?{#DESCRIPTIF_GIS, "<p>Toute information bienvenue...</p>"})]</td>
</tr>
</BOUCLE_jardins>
</tbody>
</table>
</BOUCLE_groupe-mot>
Le compte jardins
Autre modèle spip inclus dans le chapô de l’article « Carte des jardins ».
Ce [(#ENV{date}|nom_jour)] [(#DATE|affdate)], il y a <BOUCLE_groupes(MOTS){id_groupe=4}{par num titre}{" ainsi que "}><BOUCLE_gis(MOTS){gis}{id_mot}> [(#TOTAL_BOUCLE|unique)] </BOUCLE_gis> [(#TITRE|strtolower)]</BOUCLE_groupes> répertoriés sur la carte.
Résultat : Ce mercredi 20 février 2019, 42 sites de jardins partagés et 12 sites de jardins ouvriers et familiaux et 3 sites de jardins atypiques et 6 sites de en projet et 1 sites de archivé sont épinglés sur la carte.
[1] Spip est le moteur de ce site, voir lien en pied de page.