-
Notifications
You must be signed in to change notification settings - Fork 76
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
Performances liées à des géométries complexes #4391
Comments
Ce que l'on voit à l'écran n'est qu'une seule géométrie ? Dans le module Outdoor, on a implémenté le fait qu'un site pouvait être une collection de plusieurs géométries, mais de mon côté je n'avais pas bien compris ni demandé cela, et je ne suis pas certain que cela soit une bonne chose ou vraiment utile ? En tout cas, que cela soit pour les sites Outdoor ou les randos, je ne suis pas favorables à les simplifier géométriquement avant de les intégrer dans la BDD. Il faut en garder et stocker la géométries d'origine précise. Pour avoir la donnée précise, pour les calculs d'intersection, etc... Par contre, je serai très favorable à renvoyer dans l'API des géométries simplifiées (stockées dans la BDD pour des questions de performance ou simplifiées à la volée pour plus de souplesse). |
À mon avis ces problèmes de lenteur sont précisément dus aux calculs d'intersection avec une géométrie complexe (celle-ci est composée de beaucoup de positions apparemment). Actuellement les intersections sont calculés à chaque demande de page pour GTA et une seule fois pour l'API (grâce au cache API) jusqu'à la prochaine modification. Une autre solution plus lourde à mettre en oeuvre serait de faire les intersections à la modification de la donnée dans GTA, dans des tâches asynchrones. Et de stocker les liens de proximité dans la BDD.
Il faudrait vérifier que c'est bien l'étape de calcul des intersections qui est responsable de ce problème. |
Ah oui si le soucis ne sont pas l'affichage des géométries complexes, mais les intersections géographiques à la volée avec d'autres objets, alors cela serait intéressant de stocker celles-ci. Mais bon, ça ferait pas mal de stockage et de triggers (car il ne faut pas dépendre uniquement de l'applicatif pour ces stockages d'intersections calculées si on modifie ou insère des données directement dans la BDD). |
Alors je confirme que dans le cas présent ce n'est pas l'API mais le calcul pour récupérer les objets liés le pb. l'API répond dans des temps tout à fait acceptable de l'ordre de dizaines de ms. Après, comme évoqué précédemment sur les performances en général, tous les objets non liés topologiquement (dont site, contenus touristiques, ou instances sans segmentation dynamiques) sont très sensibles à la complexité des géométries. |
Problème :
Certaines géométries trop complexes provoquent un ralentissement significatif de l'API de Geotrek-admin. Cela se manifeste par des problèmes d'affichage, notamment pour ce site outdoor : Barthes de la Nivelle
Solutions envisageables :
Simplification des géométries en base de données
Mettre en place une fonction trigger pour appliquer une simplification automatique des géométries avant leur insertion en base de données.
Simplification des géométries côté front
Appliquer une simplification des géométries au moment de leur affichage dans l'interface utilisateur (portail rando et Geotrek-admin).
The text was updated successfully, but these errors were encountered: