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.
Messages
1er juin 2007, 13:34, par tom
Bonjour,
Je viens d’installer le plugin Gis et lorsque je veut le configurer il apparaît le messag d’erreur suivant : Erreur : Fichier inc/geomap_config introuvable.
Je suis sous spip 1.9.2 avec le squellette beespip.
Si vous avez une idée merci de vos réponses.
Tom
buch.tom05@gmail.com
www.rando-hautesalpes.com
1er juin 2007, 18:26, par bb
Bonjour Tom,
Tu as peut-être oublié d’activer le plugin "Googlemaps API" qui est nécessaire au fonctionnement du plugin GIS.
Lire le post sur spip-contrib
Voir en ligne : Plugin Gis escoitar sur spip contrib
11 juin 2007, 20:38, par stéphan (Artlogic)
Formidable !
Merci pour cette info. Une petite question : Le plugin GIS affiche la carte en fonction d’une coordonnée passée dans l’URL et un zoom défini une fois pour toute. Sais-tu s’il est possible de lui faire afficher l’itinéraire en pleine carte de façon dynamique ? Suivant mes kml, mes itinéraires sont un peu hors carte.
Voir en ligne : Mangeons du GIS, c’est du bon.
12 juin 2007, 09:56, par bb
Bonjour Stéphan,
J’avais pensé à cette fonctionnalité quand j’essayais d’afficher des tracés kml sur mes cartes. J’ai déjà quelques pistes pour mettre cela en place, mais je n’y suis pas encore arrivé.
Je ferai une mise à jour de l’article dès que cela sera possible. On peut en discuter sur l’irc de spip.
A bientôt ++
30 septembre 2008, 12:00, par opopop
Bonjour Bruno,
Je n’arrive pas à créer le squelette qui me permettrait de zoomer et de centrer mes cartes en fonction de mots clès (tu me l’as déjà expliqué mais j’ai zappé depuis !)
J’utilise le plugin ’Squelettes par mots clefs’
J’aimerai centrer chaque carte de mes rubriques en fonction du positionnement du marqueur d’un de leurs articles auquel on aura attribué le mot clé ’centrer_sur_article’ et qu’un zoom soit appliqué à la carte en fonction d’un mot clé associé à la rubrique
Si quelqu’un a une piste...
Voir en ligne : découverte sonore
30 septembre 2008, 13:00, par bb
Bonjour opopop,
Un truc dans le style devrait faire ce que tu veux :
Bon courage ++
1er octobre 2008, 10:11, par opopop
Merci pour la rapidité de ta réponse.
Cependant j’ai toujours mon problème concernant le zoom et on ne peut appliquer le critère zoom=#ZOOM dans une BOUCLE
Je vais donc passer par le modèle
< carte_gis|id_article=X|zoom=X >
Un grand merci pour ton dévouement à la cause spipienne :)