Accueil > Chantiers pemanents hors de France > L’application chantiers.php
L’application chantiers.php
par
Basée à la fois sur les bibliothèques fournies par Google Maps et la base de données de points créée initialement pour l’application fichesindex.php des fiches de terrain, ce nouveau développement permet de proposer des cartes par chantier ou mondiales, des points GPS permanents ou de campagne, à partir d’informations que chaque utilisateur autorisé peut entrer à sa guise.
Cette application s’appuie, comme Google Maps, sur le Javascript (et son extension Ajax). Elle ne peut fonctionner que si le navigateur autorise le Javascript.
Visiteur
Le simple visiteur peut, bien sà »r, déplacer la carte, modifier le niveau de zoom ou changer le fond topographique à sa guise.
Le survol avec la souris d’un marqueur affiche une infobulle et, dans le cas d’un chantier, surligne le nom du point dans la colonne de gauche (points permanents uniquement).
Le survol dans la colonne de gauche provoque, dans le cas d’une carte mondiale, l’affichage d’un cadre autour de la zone géographique correspondant au nom du chantier survolé. Dans le cas d’une carte de chantier, c’est l’infobulle du point dont on a survolé le nom qui s’affiche.
La liste des noms affichés dans la colonne de gauche provient d’un fichier texte où le webmestre a indiqué ce qu’il souhaite montrer. Il peut ainsi exister des chantiers dont on voit les points sur la carte mondiale mais auxquels on n’a pas accès, ou des points qu’on voit sur la carte mondiale mais qui n’apparaissent pas sur la carte du chantier. Au contraire, un nom qui apparaît dans la liste de gauche (généralement parce qu’il existe des données pour ce point) mais qui n’aurait pas été renseigné dans la base de données est surligné en gris et n’aura pas de représentation sur la carte.
Il est possible de faire apparaître et disparaître les points de campagne comme les points permanents en appuyant sur les boutons correspondants, l’affichage s’accompagnant d’un recadrage de la carte [1].
L’entrée d’une latitude ou d’une longitude entraîne l’apparition pendant 10 secondes d’une croix jaune sur la carte à l’emplacement des coordonnées rentrées, ainsi que le centrage de la carte sur ces coordonnées. La traduction entre degrés décimaux ou degrés/minutes/secondes est automatique.
L’infobulle d’un point indique au minimum ses coordonnées (uniquement en degrés/minutes/secondes), son altitude (si elle a été correctement renseignée) et une personne à contacter pour obtenir plus d’information sur ce point. Selon le contenu de la base de données, le visiteur trouvera également un lien vers le fichier log du point (points permanents), vers l’application fichesindex.php des fiches de terrain si l’on y trouve des photos ou des descriptifs qui complètent l’infobulle, ou vers un fichier au format pdf qui correspond le plus souvent à une numérisation de la fiche de terrain papier.
Pour diminuer l’attente, l’application commence par charger un fichier au format KML qui matérialise les points avec le marqueur par défaut de Google Maps (la goutte inversée). En tâche de fond l’application demande au serveur l’intégralité des points permanents connus de la base (cas de la carte mondiale) ou chacun des points listés dans la colonne de gauche (cas d’un chantier). Une fois cette liste récupérée, le calque correspondant au fichier KML est supprimé et un marqueur est créé pour chaque point avec une icône selon son organisme de rattachement (une légende est créée « à la volée » à ce moment-là ).
Cette application a initialement été développée pour donner une visibilité aux stations GPS INSU. Mais nos équipes collaborent sur certains chantiers avec d’autres organismes dont les données sont prises en compte dans nos calculs. Actuellement ces organismes partenaires apparaissent sur la carte mondiale uniquement quand ce sont des organismes français. A noter sur les cartes de chantiers l’éventuelle présence des stations IGS prises en compte dans le calcul ; l’infobulle fournit alors le lien vers le fichier log IGS.
Selon les desiderata de nos partenaires, les données des points permanents peuvent ne pas être mises à disposition, ou mises à disposition avec un délai (la présence d’un fichier vide signale alors l’existence de la donnée jusqu’à ce que le délai soit écoulé).
Lorsque les points permanents sont affichés, l’application demande au serveur les points de campagne correspondant. Ils n’apparaîtront que si le visiteur sélectionne « campagne ». De façon complètement transparente chantiers.php demande enfin au serveur de régénérer un fichier KML. C’est une façon un peu lourde (pour le serveur) mais sure de maintenir des fichiers KML à jour des dernières modifications avec au plus une visite de décalage.
La nouvelle norme XHTML demande à ce que l’utilisateur soit libre de choisir sa méthode de navigation. Par défaut, la sélection d’un lien provoque son affichage dans la fenêtre courante du navigateur. Les temps d’affichage de la page Google Maps peuvent rendre très pénible l’exploration des séries temporelles d’un chantier. Il est conseillé, sous FireFox, d’afficher ces liens dans un onglet différent (CTRL+clic) voire une fenêtre différente (Maj+clic). Cette possibilité existe certainement sur les autres navigateurs.
Le visiteur a la possibilité de devenir un utilisateur privilégié en renseignant les champs « compte » et « mot de passe » avec les éléments fournis par le webmestre.
Utilisateur privilégié
L’utilisateur privilégié voit le formulaire en haut de la colonne de gauche se développer pour lui permettre de créer de nouveaux points ou de modifier des points existants.
A partir de là , le maintien de la souris plus d’une seconde au-dessus d’un marqueur pour lequel l’utilisateur a les droits d’écriture provoque l’initialisation du formulaire avec les valeurs actuelles de ce point.
Comme, dès ce moment-là , une étourderie a des conséquences immédiates sur la visibilité de l’ensemble du chantier, un certain nombre (jamais suffisant) de garde-fous ont été mis en place :
le bouton « création » n’apparaît qu’une fois au moins un champ correctement rempli parmi les trois champs « latitude », « longitude », « nom du point » (sur 4 caractères, format IGS), y compris après modification d’un de ces champs initialisé par un survol de souris (on peut vouloir créer un point en se basant sur les coordonnées d’un point proche déjà existant).
le bouton « modification » n’apparaît que si le formulaire a été initialisé par survol d’un marqueur avec la souris sur la carte
une demande de création alors que le formulaire a été initialisé par un survol de souris provoque une demande de confirmation (il est courant de cliquer sur le mauvais bouton).
il n’y aucun moyen de supprimer un point de la base. Toute mauvaise manipulation est à signaler au webmestre [2].
les manipulations se font point par point [3].
le formulaire se surligne en vert pendant trois secondes lorsque le serveur accuse réception de la modification (ou de la création) [4].
Un utilisateur privilégié ne l’est généralement que sur un certain nombre de chantiers. Seuls ces chantiers sont actifs dans la liste déroulante des chantiers. Il est possible de créer des points sur un chantier qui n’est pas le chantier en cours (mais l’ergonomie peu adaptée devrait décourager cette pratique). L’initialisation du formulaire par survol de marqueur ne fonctionne que pour les chantiers sur lesquels l’utilisateur a des droits d’écriture. Cette précision n’est pas inutile car l’application prévoit d’afficher plusieurs chantiers distincts sur une même page Web (par exemple pour le Chili qui comprend les chantiers Nord, Centre et Sud-Chili).
Il est possible de télécharger vers le serveur un fichier log ainsi qu’un fichier pdf à partir du même formulaire. Aucun contrôle n’est effectué sur le contenu de ces fichiers. Seul le format du nom est vérifié (fichier log : ssss_site.log ou ssss_aaaammjj.log ; existence de l’extension pdf pour l’autre fichier). Il est possible de remplacer un fichier stocké dans la base par un nouveau, mais pas de le supprimer purement et simplement (il faut demander au webmestre de le faire si besoin).
lien avec l’application fichesindex.php
Les deux applications sont fortement liées par l’utilisation d’un même base de données MySQL contenant tous les points répertoriés. C’est particulièrement vrai pour la gestion des utilisateurs et de leurs droits sur les chantiers.
L’utilisateur privilégié constatera que, s’il s’est déjà identifié à travers l’une des deux applications, il sera immédiatement identifié lorsqu’il lancera l’autre s’il n’a pas complètement fermé son navigateur entre les deux. Cela est dà » à l’utilisation de cookies de session pour maintenir son identification entre différents affichages (sinon, se ré-identifier après chaque clic rendrait le travail extrêmement pénible).
Il existe en fait trois niveau d’utilisateurs privilégiés prévus dans la base de données :
le rédacteur, qui peut créer et modifier des points sur un chantier
le gestionnaire de données, qui peut en plus envoyer au serveur des listes de données concernant un chantier (utilisé pour l’instant dans fichesindex.php)
le responsable de chantier, qui peut donner les droits précédents sur son chantier aux utilisateurs répertoriés dans la base de données
La gestion des utilisateurs se fait toujours à partir de l’espace privé de l’application fichesindex.php. C’est là également qu’un utilisateur peut changer son mot de passe.
Il existe encore au-dessus un niveau administrateur qui, seul, peut créer de nouveaux chantiers ou de nouveaux utilisateurs. Pour éviter l’abus de pouvoir, le niveau administrateur n’a en revanche aucun des droits des utilisateurs privilégiés vus précédemment et ne peut donc pas agir sur le contenu d’un chantier. De même, la génération d’un nouveau mot de passe par l’administrateur est aléatoire et stockée de façon cryptée dans la base. Ainsi, seul l’utilisateur concerné connaîtra son mot de passe grâce un envoi de courriel automatique.
[1] Le centrage de la carte Google Maps est un problème dont je n’ai pas la solution. Un chantier comme le Chili a une très forte extension Nord-Sud et, selon la résolution de l’écran du visiteur et la taille de fenêtre du navigateur (informations extrêment difficiles à gérer pour s’adapter à tous les navigateurs), il n’est pas possible de voir l’ensemble de la carte d’un coup. Google Maps n’a pas l’information de ce qui est visible et centre la carte sur son point médian qui peut fort bien être hors écran (mais accessible en jouant sur l’ascenseur proposé par le navigateur).
[2] Une fausse manÅ“uvre se manifeste souvent par un excentrement de la carte par rapport au chantier. Les causes courantes sont une erreur de chantier d’attribution dans la liste déroulante proposée ou une erreur de signe dans les coordonnées.
[3] Il m’avait été demandé la possibilité de transmettre au serveur un fichier texte contenant une liste de points avec leurs coordonnées. Je me suis rapidement aperçu que je gagnais beaucoup de temps à intégrer moi-même une liste transmise par mes collègues (avec quand même un programme semi-automatique) par rapport à essayer de développer une interface utilisateur qui prenne en compte toutes les erreurs possibles
[4] Un des problèmes que je rencontre souvent est la création de doublons, invisibles sur la carte puisque les marqueurs sont parfaitement superposés. Merci d’attendre un peu avant de décider que l’action effectuée n’a pas été prise en compte !
Dans la même rubrique :