Rôle
La boucle GEOPOINTS sert à parcourir les points géographiques définis sur un élément SPIP. Elle est directement reliée à la table <i>gmap_points</i> qui contient les points définis dans l'interface de géolocalisation.
Cette boucle peut-être utilisée pour ajouter les marqueurs correspondants aux points sur les cartes de l'interface publique. Elle s'utilise donc dans deux cas :
- Le cas le plus courant est la redéfinition d'un fichier de requête permettant de récupérer les points selon des critères spécifiques. Le fichier par défaut gmap-query-default.html peut servir d'exemple pour définir de tels fichiers. Ce sont des squelettes SPIP qui produisent des fichiers au format KML.
- Un cas moins courant serait l'ajout manuel de marqueurs grâce à la balise #GEOMARKER. L'utilisation de la boucle est la même.
Utilisation
La syntaxe est la suivante :
<B_points> <BOUCLE_points(GEOPOINTS){identificateur d'objet}[{visible}][{meilleur}]> ... </BOUCLE_points> </B_points>
Le critère {identificateur d'objet} est obligatoire, il permet d'identifier l'objet duquel on cherche les points. Il peut s'agir de critère faisant référence au contexte des boucles, comme {id_article}, ou une indication explicite comme {id_rubrique=2}, ou encore un couple {objet=document}{id_objet=123}.
Le critère {visible} indique que seuls les points dont le type est marqué visible seront renvoyés.
Le critère {meilleur} indique que l'on souhaite ne récupérer qu'un seul point. La requête recherche alors le point défini sur l'objet ayant le meilleur niveau de priorité, c'est-à-dire le plus faible champ priorite de la table gmap_types.
Balises
Dans le contexte de la boucle GEOPOINTS, on peut utiliser les balises suivantes :
- #ID_POINT : identifiant du point (a priori inutile).
- #LATITUDE : latitude du point.
- #LONGITUDE : longitude du point.
- #ZOOM : facteur de zoom associé au point.
- #OBJET : type de l'objet par lequel on a accéder au point (sachant qu'un point pourrait à l'avenir être lié à plusieurs objets).
- #ID_OBJET : identifiant de l'objet par lequel on a accéder au point (idem).
- #TYPE_POINT : nom du type de point.
- #DESCRIPTIF : descriptif du type de point.
- #VISIBLE : oui/non selon que le type de point est visible ou non.
- #PRIORITE : niveau de priorité du type de point.
Dans le contexte de la création d'un fichier KML, on peut également utiliser les balises spéciales (parce que non liée à la base de données) suivantes :
- #GEOMARKERICONS : ajout des information sur l'icone du marqueur, dans un format spécifique aux KML de GMap.
- #GEOPOPUP : ajout du contenu de l'info-bulle associée à un objet.
Exemple
<BOUCLE_art_documents(DOCUMENTS){id_article}> <BOUCLE_art_documents_points(GEOPOINTS){id_document}{visible}{meilleur}> <Placemark> [<styleUrl>(#URL_PAGE{gmap-styles-default}|ancre_url{GMapDocument})</styleUrl>] <ExtendedData>[ (#GEOMARKERICONS{format=kml})] <markerParams[ type="(#TYPE_POINT)"][ zoom="(#ZOOM)"][ objectName="(#OBJET)"][ objectId="(#ID_OBJET)"][ visible="(#VISIBLE)][ priority="(#PRIORITE)"] /> </ExtendedData> [<Style> <BalloonStyle> <bgColor>ffffffff</bgColor> <text>(#GEOPOPUP{objet_parent=article,id_objet_parent=#_articles:ID_ARTICLE})</text> </BalloonStyle> </Style>] <Point> <coordinates>#LONGITUDE,#LATITUDE,0</coordinates> </Point> </Placemark> </BOUCLE_art_documents_points> </BOUCLE_art_documents>