Afficher les leisure=track
publié le , mis à jourComme remarqué par @pmiossec ici https://codeberg.org/cartes/web/pulls/2076#issuecomment-14629809
On ne voit pas les pistes de vélo dans cartes
Ex (2 que je connais):
https://www.openstreetmap.org/relation/6630051
https://cartes.app/#17.88/48.795974/2.329038/-7.2
Et:
https://www.openstreetmap.org/way/1214069467
https://cartes.app/?style=hybrid#18.38/48.787582/2.334203
PS: je n'omet pas l'idée quelles soient mal mappées dans OSM (car y'en a une, je viens de (re)découvrir, c'est moi qui l'ait créée 😅)
Ils sont bien dans les tuiles, mais toujours en Polygon, il va falloir modifier pour différencier ceux tagués en aire (le premier) de ceux taggés en linéaire (le 2e).
alexandreG
J'ai commencé à travailler ce sujet dans les styles. Comme on peut le voir ci-dessous, ça fonctionne bien pour les multipolygon (la piste de l'hippodrome) mais pas pour les linéaires (la piste de vélo qui fait le tour). Par contre je ne sais pas exactement comment modifier les tuiles pour différencier ces deux types d'objets.
etienneJr
@alexandreG c'est le même cas que les zones piétonnes : certaines sont des polygones et d'autres sont des lignes. Pas besoin de modifs dans les tuiles, il faut prevoir 2 layers de styles différents, en filtrant avec
['==', ['geometry-type'], 'Polygon']ouLineString: https://codeberg.org/cartes/web/src/branch/master/app/styles/base.ts#L1269-L1335 (attention, dans cet exemple, la syntaxe['==', '$type', 'LineString'],utilisée dans le filtre du layerPedestrians waysest dépréciée, il vaut mieux utiliser la version ci-dessus.alexandreG
@etienneJr Quand je regarde dans les tuiles, la piste de l'hippodrome et la piste de vélo sont toutes les 2 en Polygon, ce qui rejoint ton commentaire initial non ? Comment les différencier dans ce cas ?
@etienneJr wrote in https://codeberg.org/cartes/web/issues/2145#issue-4958772:
Ils sont bien dans les tuiles, mais toujours en Polygon, il va falloir modifier pour différencier ceux tagués en aire (le premier) de ceux taggés en linéaire (le 2e).
Piste de l'hippodrome Piste de vélo etienneJr
@alexandreG wrote in https://codeberg.org/cartes/web/issues/2145#issuecomment-27551487:
ce qui rejoint ton commentaire initial non ?
ah mazette, non seulement je ne me souviens plus de mes commentaires, mais en plus je ne les relis même pas, désolé de t'avoir fait perdre du temps avec ça.
Donc en effet il faut modifier la génération des tuiles. Par défaut la distinction Line VS Polygon se fait en testant si le way est fermé ou non, avec Is_Closed()
local is_closed = IsClosed()https://codeberg.org/cartes/serveur/src/branch/master/tilemaker/resources/process-openmaptiles.lua#L645 puis l'info est transmise àLayer("aeroway", is_closed)lors de l'ajout de l'élément dans le layer de données.Mais on peut rajouter d'autres tests sur les tags pour mieux différencier, par exemple
local is_area = (public_transport == "platform" or Find("area") == "yes" or Holds("area:highway") or IsMultiPolygon() ) and is_closedhttps://codeberg.org/cartes/serveur/src/branch/master/tilemaker/resources/process-openmaptiles.lua#L880Ici, on pourrait dire que un way tagué leisure=track doit toujours être un LineString même si il est fermé ? Faut trouver à quel endroit est appelé
Layer()pour les leisure et adapté is_closed/is_area.ça te suffit comme info ?