[OSM-talk-fr] exporter les tags d'un projet/style vers taginfo
Phyks
phyks at phyks.me
Dim 16 Juin 20:12:44 UTC 2019
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 at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
--
Phyks
Plus d'informations sur la liste de diffusion Talk-fr