Georiviere / Georiviere-admin

https://georiviere.fr
BSD 2-Clause "Simplified" License
26 stars 6 forks source link

Calcul des distances à la source #108

Open babastienne opened 1 year ago

babastienne commented 1 year ago

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 :

LePetitTim commented 1 year ago

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 :

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:

Pour le calcul dynamique en javascript, il faudrait :

Dans quel vue faut il afficher le calcul dynamique ?

thomasmagninfeysot commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

Ok par contre :

Image

LePetitTim commented 1 year ago

Pour le premier point : https://github.com/Georiviere/Georiviere-admin/pull/188 Le deuxieme point doit être corrigé depuis la dernière version. A verifier

thomasmagninfeysot commented 1 year ago

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 commented 1 year ago

Ok je confirme ton observation @thomaspnrhj, à corriger.