Cet article explique comment ajouter des tracés issus de fichiers kml sur une carte google maps affichées par le plugin GIS pour Spip. Après avoir modifié le plugin GIS, il suffit de joindre un fichier kml à un article ou une rubrique pour afficher son tracé sur la carte.

Mise à jour du 10/06/2007

Cette fonctionnalité est maintenant intégrée au plugin GIS disponible sur la zone. Il est possible d’afficher le contenu d’un fichier kml sur la carte d’un article et sur la carte d’une rubrique (en attachant le fichier kml à l’article ou à la rubrique). Par contre, il faut toujours ajouter les fichiers kml à la table spip_type_documents de la base de données comme expliqué ci-dessous.

Introduction

Dans un billet précédent, j’indiquais la disponibilité du plugin GIS qui permet d’attacher des cartes google maps à des articles ou des rubriques d’un site sous SPIP. Lisez l’article de présentation sur spip-contrib pour en savoir plus sur ce plugin.

Après avoir "joué" avec le plugin pour découvrir son fonctionnement, j’ai eu besoin d’afficher des tracés sur les cartes d’un site de test. J’ai trouvé le moyen de le faire sur le très bon site de Mike Williams. Il suffit d’utiliser cette fonction dans le code qui génère la carte google maps :

var kml = new GGeoXml("http://mydomain.com/myfile.kml");
map.addOverlay(kml)

Application au plugin GIS

Ouvrir le fichier plugins/gis/inc-gis_map.html et ajouter ce code à la ligne 25 :

<BOUCLE_kml(documents){id_article?}{id_rubrique?}{0,1}{extension=kml}>
var kml = new GGeoXml("#URL_SITE_SPIP/#URL_DOCUMENT");
map.addOverlay(kml)
</BOUCLE_kml>

Cette boucle récupère l’url complète du fichier kml attaché à la rubrique ou à l’article sur lequel on veut afficher la carte.

Aider Spip à reconnaître les fichiers kml

Ensuite, il faut ajouter les fichiers kml à la table spip_type_documents pour pouvoir les télécharger sur le site sans qu’ils soient compressés dans un zip. En effet, si on télécharge un document non référencé dans cette table sur le site, spip le compresse automatiquement dans un zip pour des raisons de sécurité.

Pour ajouter les fichiers kml à la table spip_type_documents, connectez-vous à l’interface phpMyAdmin de votre hébergement. Ajoutez une ligne à la table avec ces informations :

  • id_type : laisser vide
  • titre : Google Earth Placemark
  • descriptif : laisser vide
  • extension : kml
  • mime_type : application/vnd.google-earth.kml+xml kml

Et voilà, c’est terminé ! Maintenant, vous pouvez joindre des fichiers kml à vos articles ou rubriques et ceux-ci seront affichés sur vos cartes de l’espace public.

Pour générer ce type de fichier, vous pouvez utiliser le site de google maps et cliquer sur l’onglet mes cartes. Après avoir dessiné les tracés sur votre carte, il faut cliquer sur le lien KML (en haut au-dessus de la carte) pour télécharger le fichier.