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