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.
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 :
Nom | Description | Valeur |
---|---|---|
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 |
|
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 | 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 :
Nom | Description | Valeur |
---|---|---|
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 :
Nom | Description | Valeur |
---|---|---|
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 |