GrottoCenter/grottocenter-front

[ENTRANCE CREATE EDIT] Add mention of GPS precision coordinates.

Opened this issue · 9 comments

Objectif : informer l’utilisateur de la précision relative des coordonnées indiquées, en complément de ce qui est réalisé avec l'appli mobile, dans le cas d'une saisie manuelle de coordonnées à la création d'une entrée.

Cela permettrait de distinguer :

  • les coordonnées dont on ne sait rien (p. e. saisies par un utilisateur mais d'origine inconnue ou issues d'un import en masse)
  • les coordonnées issues de l'appli mobile (donc d'un GPS de smartphone)
  • les coordonnées mesurées avec un GPS hors appli mobile (p. e. GPS de randonnée, GPS automobile, montre GPS, inventaire mentionnant pour certaines entrées qu'elles ont été prises au GPS...) et saisies manuellement a posteriori par un utilisateur en ligne sur Grottocenter.

Proposition pour ajouter l'information lors de la création ou de l'édition d'une entrée

Développer une fonctionnalité permettant de mentionner lors de la saisie manuelle des coordonnées (p. e. case radio à cocher ou bouton Oui/Non) que la précision de celles-ci provient d'un GPS mais hors appli mobile. Visuel possible ci-dessous :

Image4

Des contrôles permettront de vérifier que la valeur est vraisemblable

  • valeur numérique inférieure à 100
  • pas de placement ou de déplacement du picto directement sur la carte, mais saisie des valeurs dans les champs lat/long
    Un message apparaitra pour engager l'utilisateur a vérifier ce qu'il indique

Proposition pour apporter l'information à l'utilisateur sur la page permettant de visualister une entrée

La visualisation ne serait pas différente de celle qui existe actuellement

Proposition d'amélioration de la fonctionnalité

  • Création d'une table t_data-origin
    contenant les possibilités suivantes
    -- inconnu
    -- GPS fournies automatiquement
    -- GPS fournies manuellement
    -- Inventaire
    -- Carte

  • Ajout d'un champ id_data_origin dans t_entrance

-- Quand l'entrée est réalisée via un csv la valeur Inventaire est enregistrée
-- Quand l'entrée est créé ou modifiée via l'application la valeur GPS automatique est retenue
-- Quand la case décrite au dessus est cochée et une valeur est fournie la valeur GPS manuel est enregistrée
-- Quand l'utilisateur clique sur la carte ou déplace le curseur sur la carte la valeur Carte est enregistrée
-- Dans les autres cas la valeur inconnu est enregsitrée

@Souterweb @urien :
Actuellement en base de données la précision est un champ non obligatoire d'une entrée qui est stocké sous forme d'entier et qui est en mètres. Rien n'indique en base de données que cette précision provient d'une saisie depuis l'app mobile ou d'autre chose. Il serait préférable de ne pas changer cela.

Il me semble préférable au moment de la création (ou de l'édition) d'une entrée de proposer un menu déroulant obligatoire à côté des champs Long. et Lat. avec comme choix possibles (liste exemple à valider ensemble) :

  • inconnu (pas de précision enregistrée en base de données)
  • Report carto ou satellite (précision de 200m)
  • GPS avant 2000 (précision de 100m en base de données)
  • GPS après 2000 avec précision inconnu (précision de 50m)
  • Précision connue (champ de saisie pour indiquer la valeur en m)
    Dans le cas de l'édition d'une entrée existante avec déjà une précision de renseignée, ce sera forcément le dernier choix qui sera sélectionné avec le champ de saisie rempli avec la valeur de précision en m provenant de la base de données,

Pour garder l'interface utilisateur simple et pour ne pas rallonger le temps de développement, je garderais l'affichage actuel de la précision sur la fiche d'une entrée sans indiqué que cela provient ou non de l'app mobile :
image

Ah Ok pour la valeur numérique stockée (je ne savais pas comment ça fonctionnait).

Apporter un choix multiple pour informer de la précision des coordonnées c'est un must que je n'osais même pas envisager ;o).
Si c'était faisable ce serait encore mieux. Restent donc à voir les différentes options.

Les items que tu proposes me semblent corrects. Mais tous les GPS actuels et depuis au moins 4 ou 5 ans ont une précision moyenne d'une dizaine de mètres identique à celle des smartphones (ce sont les mêmes puces qui sont à l’œuvre dans les deux types d'appareils). Ce qui fait que mettre 50 m pour un GPS de 2020 par exemple c'est le dégrader inutilement : je suppose qu'alors il faudrait choisir "précision connue". Idem pour le report cartographique ou sur photo satellite car exécuté correctement et surtout suivant les endroits (points de repères évidents p. e.) on peut faire bien mieux que 200 m. Sur la carte au 1/25000 on arrivait aisément à pointer à moins d'un demi-centimètre soit une centaine de mètres environ.

Pour en revenir au GPS et pour ne pas trop compliquer (sait-on vraiment de quand date son vieux GPS ou celui de la personne qui a mentionné "GPS" sur son inventaire ? ) il me semble qu'on pourrait regrouper les deux items GPS en un seul. De plus suivant l'utilisateur on peut avoir une précision deux ou trois fois supérieure ou inférieure avec le même appareil (ne serait-ce qu'entre celui qui est pressé et celui qui va attendre la stabilisation du GPS quelques minutes par exemple). Là encore l'item "Précision connue" me semble bien adapté à un GPS récent correctement utilisé : il me semble en effet difficile de connaître la précision réelle de coordonnées sans GPS (on a rarement une borne géodésique à côté du trou).

Dans le cas de l'édition d'une entrée existante avec déjà une précision de renseignée, ce sera forcément le dernier choix qui sera sélectionné avec le champ de saisie rempli avec la valeur de précision en m provenant de la base de données, :
Tout à fait d'accord avec ce système.

En conclusion je proposerais :

  • Précision inconnue / pas de valeur enregistrée en base de données
  • Report carto ou satellite / valeur enregistrée en base de données +/- 150 m
  • GPS avec précision inconnue / valeur enregistrée en base de données +/- 75 m
  • Précision connue / champ de saisie pour indiquer la valeur en m (inférieure à 100 ou à deux chiffres pour éviter les erreurs de saisie)

On mettrait la signification et la valeur enregistrée en base de données dans la page du Mode d'emploi pour que l'utilisateur sache ce qu'implique son choix.

Pour l'interface utilisateur pourquoi ne pas garder le principe énoncé ci-dessus si chacun a été bien informé (mode d'emploi ou info-bulle ou autre) de l'origine de la valeur affichée arbitrairement (premiers items) ou volontairement (dernier item).

Mais c'est du boulot... ;o)

urien commented

Effectivement les données GPS dépendent du nombre de réseaux de satellites : mon Garmin captait le signal GPS, mon téléphone capte aussi Baidou, Glonass et Navigeo, ce dernier fourni une précision de 2 m et bientôt 1m. Il y a aussi la question du relief qui masque certains satellites. Laurent Blum a des données précises à 0.2m avec un GPS pro, déjà depuis quelques années

Mon souhait est de réaliser des traitements automatiques à partir de la valeur numérique enregistrée dans le champ précision.
Pour associer automatiquement une cavité avec une entité administrative : une cavité localisée à 50 m de la limite et qui est fournie avec une précision de 0.2 m peut être associée directement.
Pour gérer les doublons : deux cavités séparées de 5 m avec une précision de 0.2 m ne sont pas les mêmes.

Si on permet de mettre des valeurs saisies manuellement dans ce champ, on va se retrouver confronté à un risque d'erreur (s'ils ne lisent pas bien le mode d'emploi ;-) ). On va mettre une valeur estimée, qui peut être supérieure ou inférieure à ce qu'un GPS aurait donné de manière automatique, ce qui ne permettra pas de faire des calculs fiables
Le principe que l'on peut appliquer est > données collectées automatiquement = traitement automatique
Données fournies manuellement > traitement au moins partiellement manuel
On pourra ne pas tenir compte des valeur 150 ou 75 en considérant qu'elles viennent d'une saisie manuelle mais si à la main on peut mettre toutes les valeurs entre 0 et 99 il n'y aura pas de moyen de distinguer les valeurs estimées saisies manuellement et les données fournies automatiquement par un GPS

OK. Je découvre à quoi pourrait servir cette valeur enregistrée. C'est difficile de réfléchir à un problème quand on n'en a pas toutes les données... ;o)

Tu penses donc qu'une valeur de précision connue à saisir "textuellement" va gêner la bidouille de traitement informatique.

Bon, mais reprenons ton exemple : Comment Laurent B. peut-il mentionner sur ses fiches la précision de son GPS pro s'il n'y a pas de champ de saisie manuelle vu que son GPS ne possèdera probablement pas l'appli mobile Grotto et qu'il l'utilisait de toute façon bien avant qu'elle soit opérationnelle ? Ou alors il faut remplacer la saisie manuelle par une catégorie pour ce type d'appareil (et aussi par exemple les mesures au théodolite, les reports de géomètre etc.) et y mettre une valeur arbitraire très basse ?

Ça donnerait alors un truc comme ça :

  • Précision inconnue / pas de valeur enregistrée en base de données
  • Report carto ou satellite / valeur enregistrée en base de données +/- 150 m
  • GPS avec précision inconnue / valeur enregistrée en base de données +/- 75 m (ou +/- 50 m)
  • Précision extrême (GPS pro, report géomètre au théodolite) / valeur enregistrée en base de données +/- 1 m
urien commented

Autre point à prendre en compte : quand on fait un import via csv on peut importer des valeurs dans le champ précision.
On peut donc à ce moment là mettre une valeur 100 si on pense que ce sont des données peu sûres et mettre 1 si Laurent nous garantit que la précision est toujours meilleure que 1m.
Ce n'est pas encore tout à fait au point, mais on devrait être capable de réimporter via csv des données qui existe déjà dans Grottocenter. Il faudrait faire une recherche avancée et récupérer un csv au bon format. Compléter le champ précision avec ce que l'on veut et faire un import csv avec ces données mises à jour.
Si tu as importé des inventaires pour lesquels tu es sûr de la précision on peut mettre une valeur légèrement supérieure à ce que tu pense comme étant la précision des coordonnées.
L'avantage c'est que cela permet de traiter des lots importants de données et que la manipulation manuelle n'est pas possible pour tous les utilisateurs mais seulement par des modérateurs; On peut alors considérer que les données rentrées manuellement par des modérateurs sont fiables et peuvent être prises en compte pour des traitements automatiques

Ok pour ça.
Mais perso ma réflexion s'arrêtait à la saisie (ou à la correction) d'une entrée à la fois.

L'idée de base c'était par exemple :

  • j'ai dans mes notes perso des coordonnées faites au GPS pour des cavités déjà en base mais avec des positions farfelues, comment informer l'utilisateur après correction de ces coordonnées qu’elles sont maintenant bien meilleures ?

  • ou alors : j'ai un vieux téléphone pourri (ou je ne prends pas mon smartphone quand je prospecte) mais j'ai toujours un bon GPS avec moi, comment préciser sur les fiches des cavités que je crée manuellement sur mon PC que leur position est "relativement" bonne et la précision connue (donc que ce ne sont pas des coordonnées "pourries" d'un vieil inventaire en Lambert III converties à la louche).

  • ou encore : j'avais un super smartphone au GPS performant deux ans avant l'appli Grotto mobile et j'ai pointé plein de trous avec que je rentre à la main une à une de temps en temps. C'est dommage que leurs coordonnées soient mentionnées "précision inconnue"...

@urien @Souterweb : Je suis POUR autoriser la modification du champ précision depuis l'interface utilisateur de l'application web (et pas uniquement via l'app mobile ou via un import CSV).
Ensuite si on décide de faire cela et que l'on veut contrôler la qualité du champ précision on a 2 choix :

  • on autorise la modif de ce champ que par les utilisateurs avec droit modérateur
  • on fait confiance aux contributeurs en faisant en sorte que l'interface utilisateur soit suffisamment clair pour que les gens ne mettent pas des précisions fausses (quitte à mettre un message d'alerte avec 2ème validation si le contributeur tente de mettre une précision <50m)

@urien : Il faudra reprendre le contenu de notre discussion dans les commentaires pour mettre à jour la description initiale de cette issue...

@bsoufflet @urien L'idéal serait de pouvoir s'appuyer sur la communauté en faisant en sorte qu'il n'y ait pas (ou en tout cas le moins possible) d'initiatives farfelues ou erronées.

Effectivement une étape supplémentaire avec message d'alerte avant validation me semble une excellente idée, associé à un format empêchant les erreurs de saisie (uniquement deux caractères chiffrés autorisés). Style du message : "ATTENTION vous êtes sur le point de mentionner une précision élevée ! Veuillez vous assurer de la validité de ces coordonnées avant de confirmer ." Le must ce serait qu'il y ait un compteur empêchant de sauter ce message avant 4 secondes pour qu'on ne puisse pas le "virer" d'un clic rapide sans prendre le temps de le lire.

En conclusion, mon idée au départ c'était simplement de pouvoir ajouter un picto aux coordonnées qui aurait indiqué une "certaine" qualité de positionnement (de cavités non issues de l'appli mobile) par opposition à celles dont on ne sait vraiment rien. Mais si on peut un jour faire mieux avec plusieurs types de précisions de coordonnées (associées à une valeur numérique utilisable stockée en base) ce sera évidemment bien plus chouette.

urien commented

Je vais réécrire ce ticket à partir de ce qu'on a convenu.
Je vais essayer de le faire rapidement, en précisant tous les détails