GeotrekCE / Geotrek-admin

Paths management for National Parks and Tourism organizations
https://geotrek.fr
BSD 2-Clause "Simplified" License
132 stars 75 forks source link

POI and dynamic segmentation ? #1680

Open camillemonchicourt opened 6 years ago

camillemonchicourt commented 6 years ago

Les POIs sont gérés en segmentation dynamique. Cela a ses avantages et inconvénients et doit être rediscuté.

On s'interroge (au sein du GT maintenance) si on doit continuer à gérer les POI en segmentation dynamique ou si on a plutôt intérêt à les gérer en temps qu'objets indépendants avec leur propre GEOMETRIE et les rattacher aux itinéraires avec un buffer (comme les Contenus et Evenements touristiques). Les 2 solutions ont leurs avantages et inconvénients, on en discutera dans le cadre du GT Maintenance.

babastienne commented 7 months ago

Bonne question. Quand on a un Geotrek sans segmentation dynamique les POI sont gérés avec un système de buffer. Ne serait-ce que par soucis de cohérence et de simplification du code ça pourrait valoir le coup de ne plus avoir le système de rattachement par segmentation dynamique avec les POI.

Je serai curieux de savoir quels sont les avantages du rattachement des ponctuels par référencement linéaire dans le cas des POIs ?

Pour le moment j'identifie les points suivants qui vont dans le sens d'un rattachement par buffer :

camillemonchicourt commented 7 months ago

On en reparlé depuis, je reste partagé. Mais à l'usage la solution actuelle en segmentation dynamique me semble plus fonctionnelle et ayant moins d'effets de bord.

Aussi car on a 800 randos et 2200 POI et qu'on n'a pas de soucis, ils sont bien associés et ça convient bien aux utilisateurs. Et car par contre les contenus touristiques qui sont associés aux randos par buffer nous ont posé pas mal de soucis et on est bloqué pour pas mal d'entre eux.

En effet, le buffer a un côté rigide et aléatoire à la fois qui entraîne des effets de bord.

Ici une illustration de quelques exemples qui posent soucis avec le système de buffer mais pas avec le système actuel de segmentation dynamique :

image

Dans cet exemple, ma rando rouge va avoir 2 POI son souhaitables, mais va par contre ne pas avoir un POI souhaitable.

Si on augmente ou qu'on réduit la taille du buffer, on va régler certains problèmes et en créer d'autres.

Bien sur, il y a des cas qui peuvent poser soucis avec le système actuel de segmentation dynamique, mais ils ne sont pas bloquants et plus cohérents avec le principe de linéaire au cœur de Geotrek et de la thématique des sentiers, alors que ce n'est pas le cas avec les buffers.

Un autre intérêt est l'homogénéité avec le fonctionnement des autres modules et donc la cohérence, mais aussi le fait qu'en faisant en sorte que les objets des différents modules sont associés aux tronçons par segmentation dynamique on peut les croiser dans tous les sens de manière homogène et cohérente, qui plus est sans lancer des intersections spatiales lourdes à chaque fois (et aléatoires et irrégulières selon la taille des buffers).

En référencement linéaire, si je modifie mon tronçon la position de mon point va être modifiée, ce qui est rarement souhaité je pense

Ce sujet a normalement été (en partie) réglé depuis longtemps avec ce fonctionnement qui semble globalement adapté et souhaitable :

Ce sujet est discuté ici - https://github.com/GeotrekCE/Geotrek-admin/issues/1214 et il reste quand même le cas où l'objet ponctuel est sur le tronçon (offset = 0) et où on allonge le tronçon. Ce cas n'est pas fréquent mais certainement à creuser, discuter dans le ticket #1214.

babastienne commented 7 months ago

Ok, merci pour ce retour.

Dans l'hypothèse où on utilise des buffers, on pourrait mettre en place un mécanisme de calculs asynchrones ou sauvegarder des résultats en base pour ne pas avoir à faire à chaque fois des calculs d'intersection spatiales longs et coûteux.

Dans ton exemple en illustration je trouve que ça reflète une avis assez personnel. Je pense justement que pas mal de territoires voudraient que les deux POIs en bas puissent remonter le long de l'itinéraire puisqu'il sont très proches géographiquement, hors avec la segmentation dynamique ça ne fonctionne pas. Dans ce cas je trouve que c'est assez bloquant typiquement ...

Après pour ce qui est de l'homogénéité, c'est discutable aussi je trouve. Prenons uniquement les modules qui gèrent au moins en partie des données ponctuelles. Les modules évènements et contenus touristiques, sites et parcours outdoor fonctionnent avec un mécanisme de buffer et pas de référencement linéaire il me semble. Par contre c'est vrai que les modules aménagements, signalétiques et services sont en référencement linéaire. Le module POI gère plus ou moins les deux modes actuellement. Donc déjà pas très homogène tout ça.
(j'ai volontairement omis le module signalement car j'ai un doute sur son mode de fonctionnement)

camillemonchicourt commented 7 months ago

Oui je parlais d'homogénéité entre les différents liés au linéaire et tout ce qui concerne les tronçons et itinéraires. Que les POI, la signalétique, les aménagements... soient remontés de manière homogène sur les itinéraires.

Les modules qui ont été ajoutés ensuite, dans un second temps (contenus et événements touristiques, Outdoor) et ne sont pas liés au linéaire et aux sentiers ne sont logiquement pas gérés en segmentation dynamique car ils ne sont pas liés aux sentiers/linéaire.