Balise #GEOMAP

Rôle

La balise #GEOMAP permet de faire afficher une carte depuis un squelette. Elle permet également, selon les paramètres qui lui sont passés d'ajouter des marqueurs sur cette carte.

Utilisation

Au plus simple, la balise GEOMAP peut être intégrée dans un squelette sans aucun paramètres :

[<div style="position: relative; display: block; width: 600px; height: 400px;">
  (#GEOMAP)
</div>]

 

Il faut cependant qu’elle soit intégrée dans une div ayant une hauteur explicite (en pixels), la largeur peut être exprimée en pourcentage.

Sous cette forme simplifiée, la balise produira une carte nue, sans aucun point. Si la balise est placée dans une boucle, la carte sera centrée sur l’élément de la boucle. On peut ensuite se servir des balises #GEOKML et #GEOMARKER pour ajouter du contenu.

 

Mais l’usage le plus courant de la balise est de désigner explicitement à la carte un objet de référence (fournissant à la fois le positionnement initial de la carte et la référence pour chercher les points à ajouter), et des points :

[<div style="position: relative; display: block; width: 600px; height: 400px;">
  (#GEOMAP{id_rubrique, markers=query})
</div>]

 

Sous cette forme la carte affichera les articles géolocalisés de la rubrique.

Affichage d'une carte simple

Requêtes sur les points

Le paramètre markers peut prendre les valeurs suivantes :

  • local : ajoute seulement le point de l’objet de référence.
  • childs : ajoute un point pour chaque objet fils géolocalisé.
  • recursive : ajoute un point pour chacun des descendants géolocalisés.
  • query : les points sont ajoutés en faisant une requête ajax vers le serveur, le fichier demandé dépend du paramètre query.
  • Une autre valeur : la valeur est alors transférée sur le paramètre query. Écrire markers=toto est un raccourci de markers=query, query=toto.

 

Quand markers=query et que le paramètre query n'est pas défini, les requêtes sont traitées par le squelette gmap-kml-default.html qui renvoie tous les enfants géolocalisés de l'objet de référence.

 

Le paramètre query peut prendre les valeurs suivantes :

  • rubriques, articles, documents, breves, auteurs, mots : requête sur les objets, de différentes façon.
  • recherche : requête tous les objets géolocalisés répondant à une requête du moteur de recherche de SPIP.
  • racine : requête sur rubriques de la racine.
  • toute autre valeur : la valeur doit être le nom d'un squelette qui contient une requête sur des points géolocalisés.

 

Tous les paramètres transmis à la balise #GEOMAP sont renvoyés au squelette qui effectue la requête, il est donc possible d'utiliser dans ce squelette des paramètres qui ne sont pas connus de gmap. Attention cependant : ce n'est pas vrai quand on utilise le modèle <map> car, lors du passage entre le modèle et la balise seul un nombre limité de paramètres est transmis.

Format des réponses

GMap est capable d'interpréter des fichiers aux formats KML et GeoJSON. Le format par défaut est KML.

Il y a assez peu de différences pratiques à l'utilisation de l'un ou l'autre format.

Format KML

Le format KML est maintenant standardisé par l'OGC, c'est donc un format non propriétaire. Il est très répandu et a l'avantage de pouvoir être lu non seulement dan Google Earth mais aussi dans la plupart des systèmes d'information géographique.

Le format est basé sur du XML, il est donc très lisible mais assez gourmand. GMap ajoute un certain nombre de définitions qui aloudissent le fichier (pour les icones). Mais ce n'est pas un critère de performance très important, et vous pouvez largement améliorer les performances en paramétrant SPIP pour compresser les réponses.

Le principal avantage de choisir ce format est que vous pouvez utiliser le même fichier pour afficher des points dans GMap que pour les exporter vers une autre application.

Format GeoJSON

Le format GeoJSON a été ajouté pour tester s'il permettait d'améliorer les performances. Il y a certes une amélioration, mais elle est minime. Le fichier étant légèrement plus compact, le transfert est légèrement plus rapide, mais cet effet est tout à fait négligeable si vous activer la compression. Côté client, le fichier est aussi très légèrement plus rapide à décoder, mais le gain reste négligeable par rapport au temps d'ajout des points sur la carte (quelques dizaines de millisecondes pour 200 points).

C'est un format assez répandu, et vous pouvez le préférer si vous en avez une autre utilisation que la représentation des points dans GMap.

Autres paramètres

La balise #GEOMAP accepte de nombreux autres paramètres, décrits ci-dessous, qui permettent de surcharger toute l’apparence de la carte (et dont beaucoup dépendent de la couche d’implémentation de la carte).

Paramètres

Tous les paramètres sont optionnels.

Paramètres communs à toutes les implémentations :

NomDescriptionValeur
map Identifiant unique de la carte. Identifiant numérique.
id_secteur, id_rubrique, id_parent, id_article, id_document, id_breve, id_auteur, id_mot, id_groupe, id_forum, id_syndic La première occurence d'un identifiant est utilisée comme objet de référence pour le centrage de la carte et la recherche des points. Les suivantes peuvent être transmises au fichier de requête. {id_article} ou {id_article=39} ou encore {objet=article, id_objet=39}
markers Définition des marqueurs
  • local : seul(s) le(s) marqueur(s) de l'objet sont affichés
  • childs : les marqueurs de l'objet et de ses descendants de niveau 1 sont affichés
  • recursive : les marqueurs de l'objet et de tous ses descendants sont affichés
  • query : la liste des marqueurs provient d'une requête ajax
  • Autre valeur : nom d'une requête spéciale, équivalent à markers=query, query=xxx
query Nom du fichier de requête (si markers=query). GMap contient des requêtes prédéfinies pour les objets qu'il traite (rubrique, article, document, brève, auteur et mot-clef) et pour les formulaires de recherche. Quand ce paramètre est absent, GMap utilise une requête sur les enfants de l'objet de référence. Chemin relatif du fichier par rapport au path de SPIP (par exemple dossier des squelettes, racine des plugins), sans l'extension .html.
format Format du fichier de requête :
  • kml (par défaut) : fichiers kml (OGC). Ces fichiers sont explicites et très standardisés. Ils peuvent être téléchargés et ouverts dans la plupart des outils de cartographie.
  • json : fichiers légèrement plus légers et plus rapide à décoder, mais moins standards.
kml | json
viewport Surcharge du positionnement de la carte par raport à un objet. Ce paramètre peut prendre la valeur site ou désigner un objet sous la forme <nom-de-l-objet><identifiant-de-l-objet>. site | <objet><id_objet>
focus Quand ce paramètre est présent (la valeur n'est pas utilisée), il indique que la carte doit s'autocentrer après avoir ajouter les points. n.a.
latitude Latitude du centre de la carte -38.5911137761474
longitude Longitude du centre de la carte 143.036499023438
zoom Zoom initial de la carte

Paramètres pour Google Maps V2 :

NomDescriptionValeur
fond Fond de carte par défaut Parmi plan, satellite, mixte, physic, earth
ctrl_fond Style du contrôle de changement du fond de carte Parmi none / button / menu
ctrl_nav Style du contrôle de navigation Parmi none / small / large / 3D
option_dblclk_zoom Activation du zoom par doucle-click sur la carte oui ou non
option_soft_zoom Activation du zoom continu oui ou non
option_wheel_zoom Activation du zoom par la molette oui ou non

Paramètres pour Google Maps V3 :

NomDescriptionValeur
fond Fond de carte par défaut Parmi plan, satellite, mixte, physic, earth
ctrl_fond Style du contrôle de changement du fond de carte Parmi none / button / menu
ctrl_zoom Style du contrôle d'échelle Parmi none / auto / small / large
ctrl_pan Style du contrôle de déplacement Parmi none / large
ctrl_scale Affichage de l'échelle Parmi none / default
ctrl_street Affichage de l'accès à StreetView Parmi none / default
ctrl_rotate Affichage du contrôle de rotation Parmi none / default
ctrl_overview Affichage du contrôle de localisation rapide Parmi none / open / close
option_dblclk_zoom Activation du zoom par doucle-click sur la carte oui ou non
option_drag Activation du déplacement de la carte avec la main oui ou non
option_wheel_zoom Activation du zoom par la molette oui ou non
option_keyboard Activation des commandes clavier oui ou non