mais limiter le nombre de résultats retournés
WIP: Toujours afficher les catégories #2381
categories_toujours_visibles into master
mais limiter le nombre de résultats retournés
Y'a encore quelques détails à régler (comme le message bien voyant) mais après un test rapide, j'aime bien : ça permet de trouver des choses que j'avais pas réussi avec le comportement actuel des catégories.
Par contre, quand on dézoom trop, il ne fait plus de requête du tout et il va falloir, soit que je fix pourquoi, soit gérer mieux car il affiche 0 résultats alors que sûr il y en a sur la zone puisque certains étaient trouvés au niveau de zoom inférieur....
merci d'avoir attaqué le sujet !
J'avais complètement oublié qu'on avait déjà prévu le paramètre resultsLimit !
@pmiossec wrote in #2381 (comment):
quand on dézoom trop, il ne fait plus de requête du tout
exactement, la requête n'est pas lancée si la bbox fait plus de 1000 km2. C'est codé ici :
https://codeberg.org/cartes/web/src/branch/master/app/effects/fetchOverpassRequest.ts#L23-L27
J'ai testé en enlevant ce bout de code :
- ça marche bien tant le nombre d'éléments est petit, par exemple on peut voir les distributeurs d'oeufs sur toute l'allemagne d'un coup !
- mais ça marche pas si il y a trop d'éléments dans la bbox, on dirait que le max count est appliqué juste pour le transfert, après la requête elle même qui prend donc rapidement plus de 10s.
Comme indiqué sur matrix, il y aurait une solution en rajoutant un timeout : [out:json][timeout:2]; (quand on demande 100 éléments, j'ai l'impression qu'on est toujours autour de 600ms, mais faudrait tester sur des requêtes de catégories compliquées). Si on se retrouve en timeout, on affiche "zoomez plus". Idem si le nb de réponses est égal au maxcount, car on doit afficher des cartes complètes (c'est ce qui nous différencie de gmaps qui affiche une sélection sans qu'on sache comment il a sélectionné)
je te laisse continuer ? dis moi si tu as besoin d'aide, par exemple pour peaufiner les requêtes overpasse
Je verrais bien de limiter le nombre d'élements à afficher (car qui peut lire une carte où par ex 100 élements du type est affiché!?!) et n'afficher que ces résultats avec donc les message "Zoomer plus" même s'il dézoom et quelque soit la valeur du zoom initial.
Bon par contre, je n'a pas encore trouvé de façon de faire cela :/
@etienneJr Quand on met un timeout, il retourne aucun résultat je suppose? Ou juste il renvoi ce qu'il a trouvé (je peux pas vérifier, mon dev local ne marche plus et je comprend pas trop pourquoi :/ )
@etienneJr wrote in #2381 (comment):
Idem si le nb de réponses est égal au maxcount, car on doit afficher des cartes complètes (c'est ce qui nous différencie de gmaps qui affiche une sélection sans qu'on sache comment il a sélectionné)
Je pense qu'il y a une nuance importante entre "On a pas tout affiché car c'est humainement pas interprétable donc zoomez, svp" et "on a filtré les résultats car on a été payé pour le faire". Tant qu'on reste dans le 1er cas, je ne pense pas que cela soit problématique de ne pas tout afficher: de tout façon l'utilisateur zoomera...
@pmiossec wrote in #2381 (comment):
Quand on met un timeout, il retourne aucun résultat je suppose? Ou juste il renvoi ce qu'il a trouvé
il retourne ça, ce qui permet bien d'identifier qu'on a eu un timeout, et de différencier du cas 0 résultats :
"elements": [],
"remark": "runtime error: Query timed out in \"query\" at line 4 after 2 seconds."
Je pense qu'il y a une nuance importante entre "On a pas tout affiché car c'est humainement pas interprétable donc zoomez, svp" et "on a filtré les résultats car on a été payé pour le faire". Tant qu'on reste dans le 1er cas, je ne pense pas que cela soit problématique de ne pas tout afficher: de tout façon l'utilisateur zoomera...
De mon expérience avec playguide, je vois 2 soucis à afficher des résultats partiels :
- le néo-utilisateur qui arrive, avant de comprendre ça, va voir une carte affichée sans l'élément qu'il connait et va trouver qu'on est nuls.
- quand l'utilisateur va bouger un poil la carte, ça va relancer la requête, et renvoyer d'autres résultats, effet guirlande de Noël garanti
donc je persiste à penser que c'est pas une bonne idée.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.No due date set.
No dependencies set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?