Aller au contenu | Aller au menu | Aller à la recherche

Libres chemins

...ceci n’est pas un blog mais le simple espace de bidouille d’une piétonne autodidacte

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)]&nbsp;[(#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 vendredi 20 octobre 2017, 41 sites de jardins partagés et 12 sites de jardins ouvriers et familiaux et 3 sites de jardins atypiques et 5 sites de en projet sont épinglés sur la carte.


[1Spip est le moteur de ce site, voir lien en pied de page.

[2Il aurait été possible de faire quasiment la carte directement avec le plugin GIS 4 (qui utilise lui LeafLet, (sauf peut-être obtenir des marqueurs de différentes couleurs ?) Mais c’était une occasion de jouer avec OpenLayer, et puis pourquoi faire simple quand on peut faire compliqué ?

[3En langage Spip un modèle est petit squelette à insérer dans un autre squelette ou dans le texte d’un article. Et un squelette me demanderez-vous c’est quoi ? Ben RTFM