Le nom du parc de la Tête d'Or à Lyon n'apparait pas
publié le , mis à jourlaem
C'est un pb spécifique, car j'ai bien le nom du parc du Thabor à Rennes, du landry, etc.
laem
Ah par contre, les pairies n'ont leur nom qui s'affiche qu'à zoom très élevé.
laem
D'accord, même pb à la tête d'Or.
laem
OK j'ai essayé de mettre la couche park (et golf) après les POI, car ce sont les POI qui cachent les parcs.
Ça leur donne trop d'importance, aux petits squares. Il faudrait qu'on ait un rank, parce que l'actuel est cassé : la tête d'Or est à 13 quand un square de quartier est aussi à 13.
J'irais bien corriger ce "rank" mais faudra ensuite correctement le gérer, notamment définir le rank en fonction du zoom.
Ah, mais je vois que chaque POI a un rank ! Un lycée, une clinique est de rang faible. Un poubelle de rang élevé. Donc en corrigeant le rank des parcs, et en les réintroduisant dans "Other POI", ça devrait marcher.
Voilà l'item sur OSM : https://www.openstreetmap.org/way/4077207#map=16/45.77883/4.85614
ok j'ai trouvé le poi class rank de 13. Statique.
poiClassRanks = { hospital=1, railway=2, bus=3, attraction=4, harbor=5, college=6, school=7, stadium=8, zoo=9, town_hall=10, campsite=11, cemetery=12, park=13, library=14, police=15, post=16, golf=17, shop=18, grocery=19, fast_food=20, clothing_store=21, craft=22, office=22, bar=23, healthcare=24 } --cartes-- MODIFIED to add craft and healthcare wa@etienneJr tu as une idée pour résoudre ça ?
Je serais tenté de donner un rank = 1 aux POI de type "park" qui ont une surface importante, via Area(), comme ici :
-- Set minimum zoom level by area but not below given minzoom function SetMinZoomByAreaWithLimit(minzoom) local area=Area() if minzoom <= 6 and area>ZRES5^2 then MinZoom(6) elseif minzoom <= 7 and area>ZRES6^2 then MinZoom(7) elseif minzlaem
On a le même pb à Vincennes.
, Boulogne...
pmiossec
Je ne sais pas si c'est le meilleur endroit pour mettre çà mais comme ça parle de
rankmais ici https://cartes.app/?style=base#15.67/48.839342/2.348773/15/40 je trouve que les établissements scolaires et le établissements de santé sont sur-représenté et au moins pour les établissements scolaires, c'est rare qu'on en recherche un. Cela pourrait être caché au bénéfice de quelque chose d'autre à ce niveau de zoom:
pmiossec
Il semble qu'en zoom >16, il y a pleins de trucs affichés mais dès qu'on passe à 15, quasiment tout disparait pour juste afficher ces types de lieux...
etienneJr
@pmiossec wrote in https://codeberg.org/cartes/web/issues/1607#issuecomment-10546628:
Il semble qu'en zoom >16, il y a pleins de trucs affichés mais dès qu'on passe à 15, quasiment tout disparait pour juste afficher ces types de lieux...
Tout à fait. Enfin plus précisément, le
ranksert à gérer la priorité entre tous les éléments possibles à un zoom donné. Alors que leminzoomà partir duquel un élément s'affiche est géré ici danspoiOpacity()(et a priori bien expliqué dans les commentaires) : https://codeberg.org/cartes/web/src/branch/master/app/styles/base.ts#L384-L448Donc c'est encore plus facile de changer ces minzoom (ça n'implique pas de changer le rank, donc pas besoin de recalcul de tuile). Et on pourrait même discrétiser encore plus (les seuils sont des float, pas des entiers, vu qu'on est en vectoriel).
Faut juste se mettre d'accord sur l'ordre qu'on veut proposer pour une app grand public ! 😅
laem
Bien d'accord : je sais pas pourquoi OpenMapTiles a donné tant d'importance aux écoles & co. L'hopital c'est plus cohérent : y en a peu, ça structure un quartier, etc.
@etienneJr tu as vu ma question plus haut pour toi :) ?
@etienneJr tu as une idée pour résoudre ça ?
Je serais tenté de donner un rank = 1 aux POI de type "park" qui ont une surface importante, via Area(), comme ici :
etienneJr
@laem wrote in https://codeberg.org/cartes/web/issues/1607#issuecomment-10558100:
Bien d'accord : je sais pas pourquoi OpenMapTiles a donné tant d'importance aux écoles & co.
c'est pas tellement OpenMapTiles, mais plutôt le style d'origine de notre
base.ts(MapTiler basic ?). Quoique c'est ptet nous même qui l'avons fait !Je serais tenté de donner un rank = 1 aux POI de type "park" qui ont une surface importante, via Area(), comme ici :
Bonne idée de différencier selon Area(). A tenter. Mais les grands parcs à zoom faible pourraient aussi être traités dans le layer
parkou dans le layerlanduse? C'est vrai que c'est le bazar, ces parcs.etienneJr
@laem @pmiossec au delà des parcs, voyez d'autres valeurs à modifier des les ranks ?
poiClassRanks = { hospital=1, railway=2, bus=3, attraction=4, harbor=5, college=6, school=7, stadium=8, zoo=9, town_hall=10, campsite=11, cemetery=12, park=13, library=14, police=15, post=16, golf=17, shop=18, grocery=19, fast_food=20, clothing_store=21, craft=22, office=22, bar=23, healthcare=24 }Typiquement c'est moi qui ait rajouté
craft=22, office=22, bar=23, healthcare=24(car ce sont des classes qui n'étaient pas dans OpenMapTiles) et je les ai mises à la fin de liste par flemme d'y réfléchir. Clairementhealthcaren'a rien à faire en dernier. Comment modifiriez-vous cette liste ?pmiossec
(Avec mon faible degrès d'expérience en cartographie, tags OSM et qu'est-ce qui peut rentrer en conflit,) je dirais qqchose comme:
poiClassRanks = { park=1, railway=2, bus=3, town_hall=4, police=5, post=6, attraction=7, hospital=8, cemetery=9, stadium=10, zoo=11, campsite=12, harbor=13, library=14, craft=15, fast_food=16, bar=17, grocery=18, shop=19, healthcare=20 clothing_store=21, college=22, school=23, office=24, golf=25, }Mais si j'ai bien compris le rank, c'est juste quand y'a pas assez de place pour afficher tout et qu'on doit faire des choix? Et que donc, sur les POI vastes (park, campsite, hospital, cemetery,...) y'a peu de chance que ça rentre en conflit à part si on affiche presque tout en zoom faible. Et dans ce cas là, il vaut mieux les mettre en 1er parce qu'ils sont structurant et pour qu'ils restent visibles. J'ai bien compris?
En y reflechissant, ça soulève des questions: Pourquoi y'a golf et pas les autres sports? Les lacs et autres étendues d'eau ne sont pas des POI?
etienneJr
@pmiossec wrote in https://codeberg.org/cartes/web/issues/1607#issuecomment-10576462:
Pourquoi y'a golf et pas les autres sports?
probablement un biais du gars qui a créé le schéma OpenMapTiles !
Les lacs et autres étendues d'eau ne sont pas des POI?
Tout à fait, ils sont dans une autre couche de données au niveau des tuiles (
water), et le visuel est géré par plusieurs couches de rendu dans la feuille de style. Les POI dont on parle ici, ce sont uniquement les éléments qui sont rendus avec une icone.Mais si j'ai bien compris le rank, c'est juste quand y'a pas assez de place pour afficher tout et qu'on doit faire des choix?
C'est même pire que ça : c'est quand il n'y a pas assez de place au sein d'une couche de rendu. Donc un autre moyen de mettre en avant la classe bidule est de :
- créer une couche de rendu pour tous les POI sauf bidule
- par dessus, créer une couche de rendu spécifique pour les bidules. Comme elle est par dessus, son affichage sera prioritaire dans tous les cas.
Et dans ce cas là, il vaut mieux les mettre en 1er parce qu'ils sont structurant et pour qu'ils restent visibles.
on peut aussi jouer sur le
minzoompour que les structurants apparaissent avant les autres lorsqu'on zoome.pmiossec
@etienneJr wrote in https://codeberg.org/cartes/web/issues/1607#issuecomment-10576842:
on peut aussi jouer sur le
minzoompour que les structurants apparaissent avant les autres lorsqu'on zoome.Oui, j'etais justement en train d'essayer des trucs mais j'arrive pas à comprendre la syntaxe. Pour https://codeberg.org/cartes/web/src/commit/7c921b0184c69fb3b4ff635a51662936904d82e4/app/styles/base.ts#L388 , y'a une doc ou un peu d'aide qqpart? Le tableau semble avoir 1 seule dimension avec des valeurs de types differents sans que j'arrive à en comprendre toute la logique...
etienneJr
@pmiossec wrote in https://codeberg.org/cartes/web/issues/1607#issuecomment-10581023:
, y'a une doc ou un peu d'aide qqpart?
La doc est
- ici pour la définition des couches de style, avec les paramètres possibles dans chaque couche : https://maplibre.org/maplibre-style-spec/layers/
- ici pour la syntaxe des expression utilisables dans les paramètres : https://maplibre.org/maplibre-style-spec/expressions/
- step est défini ici : https://maplibre.org/maplibre-style-spec/expressions/#step
Attention, notre
base.tsutilise encore par endroit des syntaxes dépréciées... j'ai un ticket ouvert qq part pour penser à faire la mise à jour ...Après, c'est clair que cette syntaxe est puissante mais pas hyper facile à lire, et en plus on a rajouté des complications en l'imbriquant dans des fonctions js à paramètres pour modifier le rendu en fonction de
styleKey... Donc je comprendrais que tu n'aies pas non plus envie d'y perdre des heures. Dis moi si tu veux que je fasse des modifs.laem
Fait ! Recalcul en cours des tuiles.
etienneJr
@pmiossec wrote in https://codeberg.org/cartes/web/issues/1607#issuecomment-10576462:
Mais si j'ai bien compris le rank, c'est juste quand y'a pas assez de place pour afficher tout et qu'on doit faire des choix?
En faisant la review de la PR, j'ai revu un autre usage que j'avais oublié : les rank 1 à 4 sont inclus dans les tuiles dès le zoom 10. Les autres seulement à partir du zoom 13. Évidemment on pourra changer ça et affiner plus précisément les minzoom, comme @laem vient de le faire pour les parcs en fonction de leur aire.
etienneJr
Je me demande si on ne devrait pas étendre la logique introduite par @laem avec les parcs pour rendre visibles plus tôt les autres éléments qui ont une grande aire ? Certes ça ne marchera pas à tous les coups, car il y a des POIs stockés en node et pas en area. Mais un lieu avec une grande aire mérité d'être signalé plus tôt, non ? Ou bien justement ça risque de mettre en valeur des choses qu'on ne voudrait pas mettre en valeur ? (genre une zone commerciale)
laem
Certes ça ne marchera pas à tous les coups, car il y a des POIs stockés en node et pas en area. Mais un lieu avec une grande aire mérité d'être signalé plus tôt, non ? Ou bien justement ça risque de mettre en valeur des choses qu'on ne voudrait pas mettre en valeur ? (genre une zone commerciale)
Oui je me suis posé la même question. Je pense qu'il vaut mieux le faire au cas par cas. Il y a sûrement en effet des lieux qu'on veut pas mettre à ce point en avant.
laem
Je me permets de clore, mais n'hésitez pas à rouvrir immédiatement si vous voulez continuer de parler de tout ça ici :)