Partenaires

CNRS
RESIF
DT
UNAVCO Facility

Rechercher

sur ce site

sur web cnrs


Accueil > Chantiers pemanents hors de France > L’application chantiers.php

L’application chantiers.php

par Olivier Charade - 20 mars 2009 - modifié le 22 avril 2011

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.
chantiers.php vu par un visiteur

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].

formulaire complet

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.


[1Le 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).

[2Une 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.

[3Il 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

[4Un 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 !