Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calcul des distances à la source #108

Open
2 tasks
babastienne opened this issue Feb 15, 2023 · 7 comments
Open
2 tasks

Calcul des distances à la source #108

babastienne opened this issue Feb 15, 2023 · 7 comments
Assignees
Labels
✨ Feature New feature or request

Comments

@babastienne
Copy link
Member

babastienne commented Feb 15, 2023

Besoin exprimé :

Dans la version actuelle, il est associé pour chaque cours d’eau une source (par défaut le point le plus en amont du cours, mais il est possible de modifier cette emplacement). Et pour chaque objet de la base de données, une distance à la source est calculée par rapport au cours d’eau le plus proche. Cependant ce calcul est fait à « vol d’oiseau » entre l’objet et la source. Il est souhaité pouvoir améliorer ce calcul est calculant la longueur réelle par rapport au tracé du cours d’eau.
Pour cela il est attendu de pouvoir placer chaque objet au point le plus proche du cours d’eau le plus proche et calculer la longueur à la source via le cours d’eau. Il est de plus attendu un outil complémentaire sur la carte (vue générale et fiche objet) qui permettent à partir d’un point placé à la main de calculer à la volée cette distance à la source (comme l’outil mesure actuellement en place).

image

Réponse :

Actuellement, le calcul de distance à une source a été fait naïvement dans GeoRivière en calculant directement la distance entre deux points.
Il est possible de modifier ce fonctionnement afin d’exploiter le principe de rattachement linéaire à un cours d’eau. Ainsi, le nouveau calcul sera réalisé de la manière suivant : l’objet positionné sera automatiquement rattaché au linéaire le plus proche puis l’ensemble du linéaire sera parcouru en suivant le chemin le plus court pour se diriger vers la source. Si la source n’est pas positionnée sur le linéaire (voir capture suivante à gauche), alors le chemin le plus court à vol d’oiseau sera mis en œuvre dès qu’on attendra le bout du linéaire. La proposition est illustrée dans la capture ci-dessous à droite.
La mise en œuvre de ce procédé passera par l’ajout d’un script Javascript dans l’interface de saisie afin de permettre la mise en place d’un calcul à la volée de la distance.

image

image

Actions à réaliser :

  • Permettre le calcul "dynamiquement" dans le front en Javascript
  • Stocker la bonne donnée en base
@babastienne babastienne added the ✨ Feature New feature or request label Feb 15, 2023
@LePetitTim
Copy link
Contributor

Actuellement la distance n'est pas stocké en base.
Faut il la stocker en base ?

Si oui, il faut mettre en place un fonctionnement qui met à jour la "distance à la source" lorsque :

  • la géométrie de la source est déplacé
  • la géométrie de la rivière est changée
  • la géometrie de l'objet est changée

Si le calcul de la distance à la source n'est pas stocké, il faut faire attention car ce calcul est complexe et peut réduire les performances des fiches détails de chaque objet et rivières.

Visuellement cela va être compliqué pour comprendre que la distance est la distance à la source en passant par la rivière:

  • faut il afficher le "chemin" jusqu'aux differentes sources dans la fiche détail d'un objet ?
  • faut il afficher le "chemin" vers chaque objets associés dans la fiche détail d'une rivière ?
  • ne serait-il pas preferable d'avoir les différentes distances dont une distance jusque la rivière, une distance jusque la source (vol d'oiseau) et une distance en passant par la rivière ?

Pour le calcul dynamique en javascript, il faudrait :

  • ajouter le tracé du calcul pour mieux comprendre le chemin pour comprendre la distance à la source.
  • mettre en place un bouton qui permet d'appeler une API pour accéder au chemin le plus rapide et sa distance.

Dans quel vue faut il afficher le calcul dynamique ?

@thomasmagninfeysot
Copy link

thomasmagninfeysot commented Feb 20, 2023

Quelques élements de réponse à tes questions
->Alors si c'est plus judicieux de le stocker en base pour gagner en performance, c'est mieux je pense.
-> pas besoin d'afficher le chemin car pour les techniciens rivière c'est logique que cette longueur représente le passage par la rivière, la distance à vol d'oiseau n'a aucune signification pour eux

@camillemonchicourt
Copy link

Si des calculs sont faits et stockés dans la BDD, est-il présent que ceux-ci sont fait directement para BDD (triggers) pour ne pas dépendre de l'application pour réaliser ces calculs et stockages et ainsi permettre de les déclencher dans tous les cas, même si on manipule les données directement dans la BDD (QGIS ou SQL) ?

@thomasmagninfeysot
Copy link

thomasmagninfeysot commented May 25, 2023

Ok par contre :

  • les valeurs de distance n'apparaissent plus pour les données existantes, il faut modifier et enregistrer pour que ça s'affiche, une commande pour le faire au global ?

Image

  • pour le calcul à la volée, si je clique sur la carte, j'ai bien la valeur, et si clique sur la x pour fermer, je peux refaire un point de calcul. Par contre si je ferme pas et je clique à nouveau sur l"outil de calcul il ne veux plus fixer le point sur la carte

@LePetitTim
Copy link
Contributor

LePetitTim commented Jul 17, 2023

Pour le premier point : #188
Le deuxieme point doit être corrigé depuis la dernière version. A verifier

@thomasmagninfeysot
Copy link

Testé sur 1.2.4 : toujours le problème suivant :
pour le calcul à la volée, si je clique sur la carte, j'ai bien la valeur, et si clique sur la x pour fermer, je peux refaire un point de calcul. Par contre si je ferme pas et je clique à nouveau sur l"outil de calcul il ne veux plus fixer le point sur la carte

@babastienne
Copy link
Member Author

Ok je confirme ton observation @thomaspnrhj, à corriger.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature New feature or request
Development

No branches or pull requests

4 participants