Bonjour à tous,

Pour donner un peu plus de détails sur la question, j'ai actuellement un script (https://github.com/cyclosm/cyclosm-cartocss-style/blob/master/scripts/generate_taginfo.py) qui permet à partir d'un fichier YAML de déclaration de style CartoCSS (testé sur CyclOSM, mais ça devrait fonctionner tout pareil sur osm-fr, osm-bzh etc) de générer un fichier JSON pour taginfo listant tous les tags utilisés. Le seul pré-requis pour l'instant est que la base de données utilisée soit une base de données standard d'un import osm2pgsql (pour les noms des colonnes), éventuellement avec --hstore.

Mon problème principal actuellement, c'est que j'aimerais pouvoir avoir dynamiquement la liste des valeurs (et non seulement les tags) utilisés. Par exemple (hypothétique), je voudrais savoir que j'affiche les shop=bicycle mais pas tous les autres shop. Le problème est que le filtrage peut se faire dans les tables SQL ou dans les styles carto, sans compter que les colonnes peuvent être fusionnées, renommées etc dans les requêtes SQL. Bref, ça me paraît très compliqué de sortir les valeurs vraiment prises en compte sans se constraindre assez fortement sur les requêtes SQL qu'on peut écrire.

En y réfléchissant un peu, une idée me semble être de faire tourner les requêtes SQL complètes sur une grosse base (monde ?) et de regarder les valeurs uniques pour chaque colonne. Ce ne sera pas parfait (une valeur pourrait être ignorée car elle n'est pas en base et non parce qu'elle n'est pas gérée par le style), mais ça devrait fournir une assez bonne approximation en général.

Ceci n'est bien sûr pas parfait, j'ignore notamment les colonnes dans les clauses WHERE ainsi que des valeurs renommées / fusionnées / transformées dans les requêtes SQL, mais ça devrait être "good enough" pour la plupart des usages. Qu'en pensez-vous ?

Je prends bien sûr tout avis ou idée pour gérer ça mieux !

Bonne soirée,
--
Phyks

Le 2019-06-06 18:10, marc marc a écrit :
Bonjour,

Je discutais avec Phyks sur irc à propos de la fonction projet
de taginfo. elle permet de connaitre la liste des tags et/ou
valeurs utilisé par un projet.
C'est pratique par exemple pour faire la différence entre
des tags utilisé ou pas encore, ou pour savoir qui prévenir
quand un tag est affecté par une proposition.
A mes yeux, ce serrait aussi pratique pour détecter
quand un poi est rendu dans un style mais pas dans un autre,
afin de pouvoir faire des PR croisé du code ou de l’icône.

exemple de tag déclaré par des projets
https://taginfo.openstreetmap.org/projects#tags

exemple tag&valeur utilisant des vues
https://github.com/giggls/openstreetmap-carto-de/issues/39

une adaptation tag avec les tables sans vue
https://github.com/cyclosm/cyclosm-cartocss-style/issues/123

exemple tag&valeur
https://github.com/der-stefan/OpenTopoMap/blob/master/mapnik/tools/maketaginfo.pl

les problèmes :
le premier utilise des vues ce qui n'est pas le cas par défaut
sur un fork osm-carto
le deuxième ne gère pas les valeurs, seulement les tags
et selon Phyks le troisième a le défaut "meh, du perl :("

j'ouvre donc ce sujet pour voir si les différentes personnes
(Christian, Maël, Yohan, sncf?, autre ?) serraient intéressées de :
- mettre en place la création du fichier nécessaire pour taginfo
avec leur projet (je peux ouvrir les tickets si vous voulez)
- collaborer pour améliorer les outils existant

Cordialement,
MArc
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

--
Phyks

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à