[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