GIS 3 - intégration de cartes KML

J’ai eu aujourd’hui à intégrer une carte KML de 4 départements d’une région. Nous allons décrire ici comment cela se passe avec GIS 3 pour SPIP 3.

Nous décrivons ici l’ajout de calques KML superposés à une carte.

Voici le résultat : chaque département du Poitou-Charentes est surligné légèrement par une couleur jaune pale, en partie transparente et avec un contour marron.

Carte avec KML superposés

Tout d’abord, il nous faut les fichiers KML. Si vous n’en avez pas, vous pouvez par exemple en choisir sur le site http://www.karamelise.fr/ qui vous donnera un zip avec un fichier KML par département français. C’est approximatif [1] mais c’est mieux que rien. Il doit certainement y avoir d’autres sources pour ce genre de KML quelque part. Et n’hésitez pas à poster vos sources dans les commentaires de l’article !

Les KML récupérés sont placés quelque part dans un dossier de votre plugin ou du répertoire squelettes. Pour ma part, c’était dans un répertoire « kml » (original non ?)

Ensuite il reste plus qu’à demander l’appel de ces KML en même temps que la carte.
Voici comment j’ai procédé pour afficher les points des articles d’une rubrique :

[(#INCLURE{fond=modeles/carte_gis,
	objets=articles,
	id_rubrique=#ID_RUBRIQUE,
	zoom=#CONFIG{gis/zoom},
	lat=#CONFIG{gis/lat},
	lon=#CONFIG{gis/lon},
	controle_type=non,
	kml=[(#LISTE{
		[(#CHEMIN{kml/16.kml}|timestamp|url_absolue)],
		[(#CHEMIN{kml/17.kml}|timestamp|url_absolue)],
		[(#CHEMIN{kml/86.kml}|timestamp|url_absolue)],
		[(#CHEMIN{kml/79.kml}|timestamp|url_absolue)]})]})]

Par rapport à une utilisation habituelle de GIS, ce qui change est la présence de l’option kml.

Cette option accepte une ou plusieurs entrées et types d’entrées :

  • un unique élément ou un tableau comme ici, créé avec #LISTE
  • pour chaque élément, un identifiant ou une url absolue.
    • Un identifiant correspond à un numéro de document (id_document), document qui est alors un fichier KML donc, sinon ça n’a pas d’intérêt !
    • Un fichier en url absolue, comme l’exemple, pointe sur un kml. On remarque ici la présence du filtre |timestamp, qui permet de donner un identifiant à l’URL en fonction de la date de mise à jour du fichier sur le serveur, parce que sinon, Google (ou les autres API de carte) met en cache votre fichier (1 cache pour 1 URL) et en phase de test c’est très ennuyant car changer le fichier kml sans changer son nom ne modifie alors pas la carte générée... pas pratique. Donc, en résumé, vive |timestamp !

Notes sur GIS 2, SPIP 2.1 et les KML

GIS 2 pour SPIP 2.1 accèpte aussi des kml, avec la limitation de ne pouvoir en mettre qu’un seul, c’est à dire que l’option kml n’accepte pas d’entrée tableau (du moins à l’heure où j’écris).

Par ailleurs pour #LISTE en SPIP 2.1, utilisez le plugin « Itérateurs », sinon utilisez #ARRAY, mais la question ne se pose pas trop pour GIS 2, puisqu’il ne prend pas de tableau :)

Voilà, je crois que tout est dit !

Bonne utilisation de KML avec GIS :)

Notes

[1Par exemple la Charente Maritime n’a pas l’île de Ré et l’île d’Oléron

-  Pour ceux qui cherchent les icônes de marqueurs, elles ont été prises ici : http://mapicons.nicolasmollet.com/ , une vraie mine pour l’iconographie de cartographie.

-  Peut être utile : les KML des communes FR

Discussion

7 discussions

  • 1
    stefdn

    Beau plugin, bravo :o)

    et là, ya les KML des communes FR (pas encore testé)

    Répondre à ce message

  • Bonjour à tous,

    Mes meilleurs voeux à toute la liste.

    Je reviens vers vous pour un souci sur lequel je ne trouve pas d’infos :

    • J’ai un site SPIP3, Plugins GIS4, un carte google map engine Pro et des fichiers KLM.
    • Ma carte (paramètrée sur google road map) s’affiche bien via le plugin, mais les fichiers KLM n’apparaissent pas.
    • J’ai suivie la contrib http://contrib.spip.net/GIS-2-GIS-3
    • Inclus le code suivant dans mon squelette

    [(#INCLUREfond=modeles/carte_gis,
    objets=articles,
    id_rubrique=#ID_RUBRIQUE,
    zoom=#CONFIGgis/zoom,
    lat=#CONFIGgis/lat,
    lon=#CONFIGgis/lon,
    zoom=2,
    controle_type=non,
    kml=[(#LISTE
    [(#CHEMINkml/ZENON7.kml)],
    [(#CHEMINkml/Zenon7_Brasil.kml)],
    )]
    )]

    Créé un dossier contenant les KLM dans le dossier squelette…
    Mais mes cartes n’apparaissent pas !
    Je tourne en rond depuis ce matin…
    Merci d’avance à celle ou celui d’entre vous qui pourrai me donner un piste !

    Bien à tous.

    Répondre à ce message

  • MINICIRCUL

    Très bonne idée d’inclure des fichiers KML, sauf que je ne vois pas comment inclure un kml lié à un aticle, c’est à dire en n’indiquant pas en dur dans le script le nom du kml mais rechercher d’après une boucle ! Une piste ? ca m’aiderait car en passant de spip 2 à spip 3 je n’ai plus l’inclusion des kml

    Répondre à ce message

  • 1

    merci pour tuto bref et précis, il m’a permis d’arriver à afficher exactement ce que je voulais !

    Juste une chose sur karamelise, j’ignore pourquoi mais les couleurs que l’on sélectionne ne sont pas bien rendues.

    En effet si je choisis la couleur de fond #aabbcc, ça me donnera une couleur kml du style : 55aaccbb

    Les couleurs vert et bleu (si je me rappelle bien) sont interverties. Du coup, je les ai changées à la main dans le fichier *.kml, ce n’est pas bien grave.

    merci encore !

    Répondre à ce message

  • Salut,

    Ce que j’avais cherché à faire avec du KML, plutôt que le fond coloré du KML : le fond transparent pour l’intérieur et coloré pour l’extérieur.

    Jamais trouvé ....

    Répondre à ce message

  • Bonjour, j’ai bien compris l’idée dans un squelette, mais avec le modèle dans un article ?

    J’ai essayé ça :

    <carte_gis1|kml=3091,4117|localiser_visiteur = oui|point = non>

    et ça :

    <carte_gis1|kml=3091|kml=4117|localiser_visiteur = oui|point = non>

    Mais marche pô ... On peut le faire ou pas plusieurs couche kml directement de l’article en utilsant le modèle ?

    Merki

    Répondre à ce message

  • 1
    Haqqtiviste

    bonjour,

    et il est où le fameux GIS3 pour Spip 3 ?

    merci

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom