9
103
Fork
You've already forked web
30

WIP: Toujours afficher les catégories #2381

Draft
pmiossec wants to merge 1 commit from categories_toujours_visibles into master
pull from: categories_toujours_visibles
merge into: cartes:master
cartes:master
cartes:abostats
cartes:SynchroM-master
cartes:gps
cartes:embeddings
cartes:lysios-patch-5
cartes:lysios-patch-4
cartes:lysios-patch-3
cartes:lysios-patch-2
cartes:lysios-patch-1
cartes:abo-serveur2
cartes:clim
cartes:zone-en-favori
cartes:rechercher_ici_avant_resultats
cartes:test-2365
cartes:panoramax-contribution
cartes:add-categories-validations
cartes:gel-bug-prod
cartes:osm-note-2
cartes:broken
cartes:wikidata_booking
cartes:fuse7.3
cartes:lysios-patrimoine-3
cartes:gps2
cartes:atproto-fix-2
cartes:styles-secondaires-mais-maison
cartes:atproto-scopes
cartes:itineraire-printemps-2026
cartes:modal-sheet-5.6
cartes:nlnet-cost-climate-perf
cartes:pb-icones-religieux
cartes:couvoiture
cartes:etiennejr-patch-2
cartes:meteo-fainéante
cartes:logo-static-url
cartes:poc-page-vitrine
cartes:remove-compass
cartes:test-reproduce-1795
cartes:display-cycleway-lanes-2
cartes:poc-image
cartes:add-media-condition
cartes:mapterhorn
cartes:test-indoor-equal
cartes:outdoors-VS-indoorEqual
cartes:hiking-colors
cartes:fix-blog-typing
cartes:poc-next-international
cartes:fix-map-style-modal-not-closing
cartes:i18n
cartes:hide-odd-zoom-levels
cartes:filter_categories
cartes:resume_wikipedia
cartes:deplacement_bouttons
cartes:fix-1095
cartes:mobile_permettre_selection
cartes:position-carte-initiale
cartes:dégradé-icônes
cartes:better_wikipedia
cartes:affichage_donnees_wikidata
cartes:mobile-permettre-selection
cartes:avis-details
cartes:perf-seo
cartes:modal-sheet-5
cartes:plans-novembre
cartes:display-cycleway-lanes
cartes:fix-1227
cartes:fix-1234
cartes:etiennejr-patch-1
cartes:update-1240
cartes:fix-1236
cartes:fix-1131
cartes:photon-search-street
cartes:fix-1221
cartes:article-avis
cartes:net-haut-zoom
cartes:baies-moins-visibles
cartes:belles-fiches-lieu
cartes:fix-1157
cartes:bug-page-vie-privée
cartes:use-watername
cartes:fix-1176
cartes:carte-du-onde
cartes:fix-1166
cartes:page-news
cartes:tchou
cartes:add-icon-alias
cartes:vitesse
cartes:photon-opensearch
cartes:private-in-italic
cartes:bâtiments-3D
cartes:merge-categories
cartes:handle-private-highway
cartes:improve-findcategory
cartes:injection-pmtiles
cartes:fix-1128
cartes:check-icons
cartes:update-readme
cartes:category-rugby
cartes:bug-position-carte-vs-lieu
cartes:limites-vitesse
cartes:improve-find-category-from-tags-v2
cartes:integrer
cartes:document-osmfeature
cartes:translate-document
cartes:velo-fin-aout-25
cartes:velo-ete-2025
cartes:moins-de-maptiler
cartes:planet-pmtiles-tilemaker
cartes:fix-1048
cartes:panoramax-leger
cartes:plume
cartes:horaires-i18n
cartes:planet
cartes:maj-deps-juillet-2025
cartes:improve-find-category-from-tags
cartes:bug-encart
cartes:interactions-encart-mobile
cartes:clic-on-station
cartes:fix-1028
cartes:fix-1014
cartes:edit
cartes:add-big-rivers
cartes:add-shortbread-tiles
cartes:handle-deleted-osm-elements-v2
cartes:codeberg
cartes:improve-useEffect
cartes:immoloc
cartes:update-dashboard
cartes:analyze
cartes:terradraw
cartes:sombre2
cartes:calendar
cartes:poi-sprites-using-svg
cartes:style-sombre
cartes:sprites
cartes:annuaire
cartes:motis-gtfs-attributes
cartes:next-styled-components
cartes:dev
cartes:cool2
cartes:cool
cartes:panoramax-angle
cartes:env-static-urls
cartes:borders-only
cartes:panoramax2
cartes:intelligence
cartes:debug-iles
cartes:nouveau-serveur
cartes:france-protomaps
cartes:turbo
cartes:fouss/cartes-#338
cartes:blog2
cartes:legislatives
cartes:presentation
cartes:pas-de-geoloc-si-hash-different
cartes:protomaps
cartes:vaul
cartes:carte-trains
cartes:citiz
cartes:maj-paquets
cartes:icones
cartes:ui2
cartes:bblog
cartes:voyagevoyage
cartes:test-image-origine
cartes:bugimagefin
cartes:searchParams
cartes:voyage
cartes:avion
cartes:perf
cartes:studio
cartes:piscine
cartes:journée
cartes:année
cartes:journée-transition
cartes:score-dès-acceuil
cartes:fix-space-problem
cartes:rebase-5août
cartes:correspondance
cartes:règles-séparées
cartes:indeps-acre
cartes:demo
cartes:indeps
cartes:indeps-cachés
cartes:indication-temps-plein
cartes:indeps-refactor-simulations
cartes:indeps-vue-comparaison
cartes:indeps-inversion
cartes:barème-continu
cartes:indeps-démo
cartes:textes-branches-sécu
cartes:engine-enum
cartes:2019
cartes:transport
cartes:publicodes
cartes:as
cartes:infrance-nouvelle-landing
cartes:better-translation
cartes:co2
cartes:simplifATMP
cartes:controle-SMIC
cartes:webi18n
cartes:bug-avantages-en-nature
cartes:revert-352-infrance-navigation-v2
cartes:laem-patch-1
cartes:robots.txt
cartes:improve-perf
cartes:iframe-bugfix
cartes:quickfixes
cartes:lib
cartes:irsimple
cartes:hiringinfrance.com
cartes:dégradé
cartes:refstate
cartes:johan
cartes:zrr
cartes:logo-interactif
cartes:revert-216-improve-tracking
cartes:redesign2
cartes:zrr2
cartes:fixtrad
cartes:correction-salaire-brut
cartes:petit-state
cartes:alien-consolidate
cartes:translate-ui
cartes:npm
cartes:alien-brut-net
cartes:translatable
cartes:différent
cartes:ir18
cartes:fix-typo
cartes:add-tracking
cartes:fix-collect-missing
cartes:défauts-partout
cartes:fix-double-unfold-three
cartes:fix-double-unfold
cartes:versement-transport
cartes:blocker-questions

mais limiter le nombre de résultats retournés

mais limiter le nombre de résultats retournés
mais limiter le nombre de résultats retournés
Author
Member
Copy link

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....

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

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 https://codeberg.org/cartes/web/pulls/2381#issuecomment-17953322: > 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
Author
Member
Copy link

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...

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 https://codeberg.org/cartes/web/pulls/2381#issuecomment-17972648: > 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.

@pmiossec wrote in https://codeberg.org/cartes/web/pulls/2381#issuecomment-18251393: > 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.
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin categories_toujours_visibles:categories_toujours_visibles
git switch categories_toujours_visibles
Sign in to join this conversation.
No reviewers
Labels
Clear labels
🎨 Design
À propos de l'interface et de l'UX
💡 Idée
Nouvelle feature à intégrer
question
Further information is requested
🌍 OSM
À propos de l'affichage et l'édition des éléments OSM
🌱 Amélioration
Amélioration/fix de l'existant
🐞 Bug
Something isn't working
📊 SEO
📋 Catégories
À propos des catégories de recherche et de l'annuaire
📖 Wiki
📝Avis
A propos de la fonction avis et de bluesky
📢 Oyez
📷 Photos
A propos des photos (sources, affichage)
🔍Recherche
A propos de la barre de recherche et de photon
🔥 Actuel
🔧 tech
🖌 Styles
Styles de la carte
🧝i18n
🧪 R&D
🚍 Transports
🚙 Voiture
🚨Prioritaire
Ticket à traiter rapidement
🚲Vélo
Cartes
climat
Communication
demo
Cette branche doit être déployée comme une démo
dependencies
Pull requests that update a dependency file
javascript
Pull requests that update javascript code
Pas urgent
Plein-air
Tuiles
Verso
Vieux
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cartes/web!2381
Reference in a new issue
cartes/web
No description provided.
Delete branch "categories_toujours_visibles"

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?