Remarque importante
Attention, ce plugin utilise la version 2 de l’API Google Maps qui ne sera plus fonctionnelle à partir du 19 mai 2013. Pensez à migrer rapidement vers les versions plus récentes de GIS.
Présentation
Ce plugin, couplé au plugin Google Maps API permet d’afficher des cartes GoogleMaps sur les pages publiques du site. Les articles, les rubriques et les mots-clés du site peuvent être géolocalisés par des marqueurs sur les cartes. Un clic sur un marqueur permet d’afficher les informations de l’élément associé (titre et lien vers l’élément, chapo, logo, lecteur mp3).
Installation et paramétrage
Avant d’utiliser ce plugin, vous devez installer et configurer le plugin Google Maps API ou le plugin OpenLayers.
Ce plugin est développé pour une compatibilité avec SPIP 1.9.2 minimum avec le plugin CFG installé.
Après avoir téléchargé l’archive sur votre disque dur, décompressez-la et déposez - via FTP - le dossier Gis dans le dossier plugins de votre site SPIP.
Une fois cette opération effectuée, rendez-vous dans l’espace privé de votre site et activez le plugin.
Avant de l’utiliser, vous devez configurer le plugin à l’aide du plugin CFG à l’adresse ecrire/?exec=cfg&cfg=gis
.
Cette page permet de définir les options suivantes :
- API de cartes à utiliser ;
- portée du plugin GIS dans l’espace privé (toutes les rubriques ou seulement certaines d’entre elles) ;
- désactivation du script swf_object si vous n’utilisez pas la fonctionnalité du lecteur mp3 dans les bulles d’informations ;
- paramètres du formulaire public du plugin.
Publier des articles en utilisant GIS
Lors de l’affichage d’un article dans l’espace privé, cliquez le bouton Déplier.
Il faut cliquer sur la carte pour marquer un point à faire apparaître (une icône apparaît ainsi que des coordonnées placées en dessous). Puis enclencher le bouton actualiser, qui se trouve à côté des coordonnées.
On voit comment l’icône apparaît effectivement à cet endroit à chaque fois que l’on va sur l’article. Si l’on veut changer la localisation sur la carte, il faut recliquer sur Déplier et actualiser la position du marqueur.
Utilisation dans les squelettes et les articles
Pour insérer une carte dans un squelette, on se sert du modèle fourni par le plugin en insérant le code suivant à l’endroit où l’on souhaite afficher la carte :
[(#MODELE{carte_gis}{id_article}{id_rubrique}{id_mot}{id_auteur}
{recherche}{latit}{lonxit}{zoom=X}{type=xxx}{control=xxx})]
On peut aussi utiliser le modèle fourni par le plugin pour afficher une carte depuis le contenu d’un article. Pour cela, il suffit d’ajouter ce code dans le texte de votre article :
<carte_gis1|id_article=9|zoom=X|type=xxx|control=XXX>
Il est possible d’afficher plusieurs cartes sur la même page. Pour cela il faut bien faire attention à incrémenter le numéro d’identification du modèle comme ceci :
<carte_gis1|id_article=9|zoom=X|type=xxx|control=XXX>
<carte_gis2|id_article=10|zoom=X|type=xxx|control=XXX>
Paramètres du modèle
Si on n’inclut pas le modèle dans un contexte, la carte affichera tous les articles du site. Si on l’inclut dans un contexte (dans une boucle rubrique par exemple) ou en posant un numéro dans les paramètres de l’inclusion précédente comme ceci : {id_rubrique=1}
, la carte affichera les articles du contexte ; ici ceux de la rubrique 1.
On peut afficher tous les articles d’un secteur en passant le paramètre {id_secteur}
au modèle. Dans ce cas, si on tente aussi de passer le paramètre {id_rubrique}
celui-ci ne sera pas pris en compte par le modèle.
On peut aussi afficher le marqueur d’un seul article en passant le paramètre {id_article=X}
au modèle (où X correspond au numéro de l’article à afficher).
Les paramètres {zoom}
, {latit}
et {lonxit}
permettent de gérer la zone affichée par la carte :
- zoom comme son nom l’indique permet de spécifier le niveau de zoom de la carte (de 0 à 13).
- latit permet de spécifier la latitude du point central de la carte.
- lonxit permet de spécifier la longitude du point central de la carte.
Le paramètre {type=xxx}
permet de définir le type de carte à afficher. Il est optionnel et peut prendre plusieurs valeurs :
- satellite (valeur par défaut si le paramètre n’est pas défini)
- carte
- hybride
- physique (pour afficher la carte de relief)
Le paramètre {control=xxx}
permet de choisir l’apparence des boutons de contrôle de la carte. Il est optionnel et peut prendre les valeurs suivantes :
- custom pour afficher des boutons personnalisés
- large pour afficher les boutons par défaut de google maps
- small pour afficher les petits boutons de google maps
Le paramètre {control_type=non}
permet d’empêcher l’affichage des boutons de changement de type de carte.
Le paramètre {control_type=complet}
permet d’afficher tous les boutons de changement de type de carte (Plan, Satellite, Mixte et Relief).
Le paramètre {recursive=1}
permet d’afficher les articles de la rubrique en cours ainsi que ceux de toutes ses sous-rubriques.
Le paramètre {limit=xxx}
permet de limiter le nombre de marqueurs à afficher sur la carte (valeur par défaut 50).
Le paramètre {attente=1}
accompagne indirectement le paramètre limit et permet d’afficher une roue d’attente tant que la carte et tous ses points ne sont pas intégralement affichés. Particulièrement utile sur les cartes avec un grand nombre de points et des temps de chargements dépassant les 10, 20 secondes... Permet de rassurer l’utilisateur ! ;-)
Le paramètre {ombre=0}
permet de désactiver l’affichage des ombres de marqueurs. Ce paramètre peu s’avérer utile sur les cartes denses en évitant que les ombres ne polluent encore plus un visuel déjà chargé.
Les paramètres {width=xx}
et {height=xx}
permettent de spécifier les dimensions de la carte à condition que le paramètre {style=non}
ne soit pas passé au modèle. Les valeurs par défaut sont 100% pour width et 400px pour height.
Le paramètre {style=non}
permet de désactiver les styles appliqués à la div
qui contient la carte. Ainsi vous pouvez styler cette div
depuis vos propres feuilles de styles.
Le paramètre {zoom_molette=non}
permet de désactiver la fonctionnalité du zoom à l’aide de la molette de la souris. Celle-ci est active par défaut.
Le paramètre {id_a_ouvrir=XX}
permet d’afficher la bulle d’information du marqueur dont l’id_article est XX lors du chargement de la carte (utilise la fonction abrirVentana présentée ci-dessous).
Contenu des bulles d’information
La bulle qui apparait sur la carte, lorsque l’on clique sur un marqueur, fera apparaître le chapo de l’article, #CHAPO
, ainsi que la première image que l’on chargera en document de l’article, et un lecteur mp3 si l’on a attaché un document mp3 à cet article.
Balises et boucles du plugin
On crée une boucle GIS pour récupérer les coordonnées de localisation de l’article en cours ; les balises #LAT
et #LONX
permettent d’afficher les coordonnées de l’article.
Exemple de boucle gis :
<BOUCLE_centrado(GIS){id_article}>
#LAT
#LONX
</BOUCLE_centrado>
Astuces
Centrer la carte sur l’article en cours
Pour centrer la carte sur l’article en cours, vous devez d’abord inclure le modèle du plugin dans votre squelette article.html (ou article-x.html si vous voulez restreindre cette modification au secteur numéro x).
Depuis votre squelette rubrique-x.html, dans les liens pointant sur chaque article, ajoutez le code suivant :
<BOUCLE_articles(ARTICLES){id_rubrique}>
<BOUCLE_centrado(GIS){id_article}>
<a href="[(#URL_ARTICLE)&zoom=16[&latit=(#LAT)]
[&lonxit=(#LONX)]]">#TITRE</a>
</BOUCLE_centrado>
</BOUCLE_articles>
La boucle GIS permet de récupérer les coordonnées de chaque article et de les transmettre à la carte du squelette article-x.html en les passant dans l’url.
Ouverture d’une bulle d’information depuis un lien
On peut ouvrir les bulles d’information depuis des liens situés à l’extérieur de la carte. Pour faire cela, il suffit de créer une boucle comme la suivante :
<BOUCLE_articles_map(ARTICLES) {par date}{inverse}{0,20}>
<a href="javascript:abrirVentana([(#ID_ARTICLE)],1)">[(#TITRE)]</a>
</BOUCLE_articles_map>
Dans cet exemple le chiffre 1 correspond à l’id de la carte dans laquelle on veut ouvrir les bulles.
Zoomer sur un point de la carte depuis un lien
On peut zoomer sur un point de la carte depuis un lien situé à l’extérieur (ou dans le descriptif d’un marqueur...) en utilisant la fonction javascript zoomIci. Exemple :
<a href="javascript:zoomIci(XX, YY, 16, 1);">Zoomer sur le Truc</a>
Les paramètres sont les suivants :
- XX latitude
- YY longitude
- 16 le facteur de zoom
- 1 l’id de la carte
Personnalisation des marqueurs
Il est possible de personnaliser l’apparence des marqueurs présents sur la carte : créez un groupe de mots-clés nommé marker_icon et attribuez un logo aux mots-clés de ce groupe.
Remarque : l’image doit être aux mêmes dimensions que les marqueurs d’origine (20 pixels de large et 34 pixels de haut) et enregistrée au format png transparent.
Ensuite lorsqu’on attache un mot-clé de ce groupe à un article ou une rubrique, le logo du mot-clé est bien affiché sur la carte à la place du marqueur par défaut.
Superposition de fichiers KML
Vous pouvez joindre un fichier kml à vos articles ou rubriques et le contenu de celui-ci sera affiché en superposition de la carte. Pour cela, il faut afficher une carte à l’aide du modèle du plugin en lui passant l’id_article ou l’id_rubrique correspondant à l’élément qui comporte le fichier kml en document joint.
Attention : Il faut utiliser la version 2 ou « current version » de l’API de GoogleMaps pour que la superposition de KML fonctionne. Vous pouvez choisir la version de l’API depuis la page de configuration du plugin Google Maps API.
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.
Geocoding
La page de configuration du plugin permet d’activer l’option de geocoding (ou plus précisément de « reverse geocoding »). Cette option, uniquement disponible avec l’API de Google Maps, permet de récupérer l’adresse des points placés sur vos cartes.
Une fois activée, l’option ajoute deux champs dans le formulaire de GIS (Pays et Ville). Lorsque vous positionnez un point sur la carte les informations d’adresse de celui-ci sont ajouté dans ces champs. Il se peut que ces informations soient erronées, le geocoding n’est pas « une science exacte ».
Dans vos squelettes, vous bénéficiez des nouvelles balises suivantes pour les boucles GIS :
-
#PAYS
-
#CODE_PAYS
-
#REGION
-
#VILLE
-
#CODE_POSTAL
Ainsi on pourra écrire :
<BOUCLE_centrer(GIS){id_article}>
[<div class="adr">
<span class="country-name">(#PAYS)</span>[,
<span class="region">(#REGION)</span>][,
<span class="locality">(#VILLE)</span>]
</div>]
</BOUCLE_centrer>
Auteurs du plugin :
Traductions de l’interface
L’interface est traduite à ce jour en :
- galicien
- espagnol
- français
Discussions par date d’activité
296 discussions
Bonjour,
au lieu de présenter la carte dans ma rubrique, d’une manière classique, je souhaiterai la mettre dans un lien qui ouvre un popup (avec le plugin du popup propre de spip), genre :
« afficher la carte », ouvre un popup avec la carte ...
j’ai essayé avec diff méthodes mais rien ne marche ...
MERCI pour vos éclairages
Répondre à ce message
Bonjour,
J’ai téléchargé les deux plugin de google maps : google api et gips.
Pour mes articles, j’ai créé plusieurs champs extra :
Nom lieu, Adresse, Code Postal, Ville
Je les appelle tous dans une même div class=« localisation » et ils sont affichés l’un à la suite des autres.
- Ma question :
comment faire pour que, dans la page article, spip m’affiche la carte coorespondant aux critères contenus dans la balise div class=« localisation » ?
Merci pour le coup de main ;)
Le principe serait de faire en sorte que ces champs passent par la barre de recherche « rechercher » de gis.
N’étant pas très fort en php et mysql, je ne vois vraiment pas comment faire !
Une idée ?
Répondre à ce message
Bonjour,
dans un modèle d’inclusion de carte,
avec le paramètre id_rubrique
est-il possible de passer un des critères du plugin polyhierarchie (
branche... branche_principale... enfants,...)
merci
Répondre à ce message
Bonjour,
Je voudrais attacher les coordonnées GIS à un nouvel objet éditorial ’etablissement’.
J’ai tout compléter les tables de données (field/key id_etablissement dans spip_gus, ...)
Mais quand j’affiche la carte il me rajoute toujours les points d’articles, et je ne trouve pas dans le code de GIS où il les prend... fichier ? boucle ?
Merci
Salut, cette version de GIS ne permet pas d’attacher les points à d’autres objets de façon native. Cela sera possible dans GIS2 qui sera prêt... quand il sera prêt :p On va dire que ça devrait être dispo dans les mois à venir.
++
Ok mais je gratte plus loin que le natif. J’ai surchargé carte_gis.html mais je ne trouve pas où sont insérés ces points sur la carte.
Trouvé ! En 3 temps :
{id_etablissement}
dans carte_gis.html :[(#INCLURE{fond=inc_public_map}{id_etablissement}
[, id_etablissement:(#ID_ETABLISSEMENT)]
dans inc-public_map.html :<BOUCLE_un_etab(ETABLISSEMENTS){id_etablissement}
GIS2
Je suis impatient de voir cette nouvelle version.
Je suis un nouveau fan de GIS !
Merci pour ce plugin.
G
Bonjour
Est-il possible de coupler le plugin GIS avec le plugin Google Maps API v3 ?
Non car GIS utilise l’API v2 de Google Maps et des fichiers XML (je crois) alors que Google Maps API v3 utilise la v3 et des fichiers JSON.
Il te faut attendre GIS2 (je ne sais pas quelle API il utilise) ou attendre qu’on ait un peu de temps pour faire évoluer Google Maps API v3 pour le rendre plus facile à utiliser (bien qu’il soit parfaitement fonctionnel, mais pour les initiés...).
Désolé :)
merci pour ta réponse.
Je vais m’initier à l’API V3 alors.
:)
GIS2 sera sûrement beaucoup plus complet et puissant, tu pourrais peut être juste simplement attendre :)
attendre c’est beaucoup moins drôle que de mettre les mains dans le cambouis :)
hey ! mais en fait ! je peux faire les deux :)) attendre avec les mains dans le cambouis !
Répondre à ce message
OU TROUVER LES MODELES POUR LA BULLE D’INFO ?
Bonjour,
Quel est le fichier qui donne le modèle pour modifier la mise en page de la bulle d’info dans google map quand on clique sur la marker ?
Merci de votre aide.
Julien
Ce que tu cherches sera sûrement dans rss-gis et rss-gis-recursive. Attention toutefois à ne pas casser la structure du RSS, ce serait dommage.
ok merci. Dans rss-gis, le champ affiche bien le CHAPO ainsi qu’une image et les infos de date et d’auteur en bas de l’infobulle.
Par contre, comment modifier la mise en page du titre au début ? Par exemple si je veux supprimer le lien hypertexte sur le titre en début d’infobulle ?
Personnellement, j’ai aussi du mal à gérer l’affichage des bulles, je trouve que le code n’est pas assez documenté et c’est difficile de s’y repérer, peut-être devrions-nous faire un travail d’analyse ? en tout cas, à part casser la structure du rss, et conséquemment virer le
<link></link>
, je ne sais pas comment faire, pas plus comment est généré le code affiché. C’est peut-être une solution qui marche pour toi bien qu’« incorrecte » ?Personnellement j’ai fait ça avec les CSS, et ça va très bien, mais si c’est au niveau de la structure que tu veux intervenir, ce n’est pas aussi évident.
Il est plus facile de changer le lien vers le document, car celui-ci est écrit avec la syntaxe SPIP.
Voici la réponse : il faut modifier le fichier /plugins/auto/googlemap_api/js/geomap.js à partir de la ligne 127, la variable « html ».
Bien joué ! et merci car ça va me servir aussi... ;D
Bonjour,
Qu’est-ce qu’il faut modifier si je veux pas d’image, pas d’auteur et transformer le format de la date ?
Si je comprend bien il faut faire de la chirurgie « destructive » dans geomap.js ? Mais cela veut dire qu’il faudra opérer à chaque update du plugin ?
Non il suffit de modifier le fichier rss-gis.html ...
OK je vais plonger dedans maintenant.
Merci
comme une lettre à la poste !
encore merci
Répondre à ce message
J’ai le même problème que « zip » :
J’ai installé Spip 1.9.2 et tous les plugs in nécessaires (google maps api et gis), la carte est bien affichée dans la partie privée mais rien ne s’affiche dans la partie publique.
J’ai mis le code suivant dans mon article 1 de la rubrique 1 :
<carte_gis1|id_article=1|zoom=12|type=carte|control=large>
b_b signalait qu’il fallait avoir #insert_head dans son squelette
Puis-je avoir des précisions à ce sujet...
merci
Répondre à ce message
Bonjour,
J’aimerai savoir dans quel fichier du plugin se trouve la fonction qui charge les markers sur la carte ??? Merci de votre réponse
idem je pense !
il faut modifier le fichier /plugins/auto/googlemap_api/js/geomap.js
Répondre à ce message
Bonjour,
J’ai un soucis avec le modele et id_secteur :
J’ai 2 marqueurs pour le moment dans une seule rubrique, la 14, mais potentiellement dans plusieurs rubriques regroupées dans le secteur 13. D’où mon code.
Hors un seul marqueur sort (si je remplace id_secteur par id_rubrique=14) j’ai bien mes 2 marqueurs. Pourquoi ? J’ai besoin de tout regrouper dans le secteur 13. Un bug ? Une mauvaise manip de ma part ?
Salut, pour lister les marqueurs d’un secteur il faut utilise le paramètre recursive du modèle.
Donc :
{id_rubrique=13}{recursive=1}
++
Super, ça fonctionne, j’avais zappé ce filtre.
Par contre
joue sur le « nombre d’articles au total » et non pas le « nombre d’articles ayant une géolocalisation » c’est normal ?
Au passage
fonctionne aussi.
Répondre à ce message
Bonjour,
j’utilise le spip 2.0.9 avec un plugin google maps, sur ma carte il ya plusieurs markers (1000) alors j’ai pensé regrouper ses markers en clusters. Je voulais savoir si avec ce plugin on peut le faire ? si oui comment ?? Merci de votre réponse.
ps : http://www.weboblog.fr/cluster-marker
Salut, non cela n’est pas pris en charge par le plugin par défaut. Tu peux tout de même utiliser le plugin dans le privé pour gérer la position de tes éléments et te bidouiller un modèle ou un squelette perso pour afficher une carte qui utilise un système de cluster. De mon côté j’utilise celui-ci qui fonctionne très bien :
http://googlegeodevelopers.blogspot.com/2009/04/markerclusterer-solution-to-too-many.html
++
Merci pour votre réponse,
Mais je ne suis pas bien en dev, alors si tu pouvais me donné un exemple de modele que tu as fais ca m’aiderai. Merci encore
Répondre à ce message
Bonjour,
J’ai installe Spip 2.1.8 et tous les plugs in nécessaire, la carte est bien affiche dans la partie prive mais rien ne s’affiche dans la partie publique
J’ai pourtant bien l’impression d’avoir tout configurer comme explique ici meme...
Une idée ?
Merci
Salut, sans lien vers la page en question on ne pourra pas t’aider beaucoup...
Jouons donc aux devinettes :
++
Salut,
Tout d’abord merci la rapidite de ton intervention :)
Si j’ai installe Spip c’est pour avoir rapidement un site avec un ensemble de fonctionnalités dont google maps
Maintenant concernant la balise et le javascripts je ne compte pas y toucher sinon je fais comme avant et je me remet au php / javascript et sql et je fais qq chose moi meme ^^
A moins que le code soit bugge et qu’il faille le corriger... mais dans ce cas je prefere me tourner vers un autre CSM comme Joomlà par exemple
Re, pas de réponses à mes questions, continuons les devinettes :
Quel squelette utilises-tu ? Les squelettes par défaut ?
As-tu bien inséré le code du modèle nécessaire à l’affichage de la carte dans un de tes squelettes ou dans le texte d’un article (ou une rubrique) ?
Sans plus d’infos de ta part je ne peux que te dire : ça marche très bien chez moi © ^^ (et chez d’autres aussi d’ailleurs).
Bon courage ++
J’ai tout effacer et tout reinstalle et cela fonctionne desormais
Merci pour ta nouvelle reponse mais je ne voyais pas d’ou le problème pouvait venir d’ou le doute sur la validite du code de ce plug in ^^
Merci encore c’est rare d’avoir autant de reponses en si peu de temps !
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 :
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.
Suivre les commentaires : |