Le 11 septembre 2017 à 13:04, marc marc <marc_marc_...@hotmail.com> a écrit
:

> Mais en ligne de commande si :
>
> 1) récupérer le minimum contenant les infos souhaitées :
> wget -O bourgogne.osm
> 'http://overpass-api.de/api/interpreter?data=rel[name=Bourgogne][
> "disused:admin_level"=4];out;'
>
> 2) filtrer pour ne garder que la relation, les chemins et le nom
> cat bourgogne.osm | egrep '(<relation id|<member type="way" |<tag
> k="name")'
>
> On peux bien sur combiner les 2 :
> wget -O -
> 'http://overpass-api.de/api/interpreter?data=rel[name=Bourgogne][
> "disused:admin_level"=4];out;'
> | egrep '(<relation id|<member type="way" |<tag k="name")' > bourgogne.osm
>

Atention ce egrep supprime trop de choses, tu n'obtiendra pas un fichier
OSM valide, ni valide en XML
- pour la vadlité XML il faut ajouter les balises de fermeture et ajouter
un objet racine englobant le tout (et faire attention aux attributs des
tags qui peuvent être sur des lignes séparées et il manquera alors des ">"
pour terminer les tags d'ouverture)
- mais pour OSM cet objet racine doit en plus suivre le schéma OSM).

Bref ce que tu obtiens c'est juste un objet plus ou moins indenté mais pas
sûr d'avoir tous les attributs.

De plus rien n'interdit à Overpass de renvoyer du XML compacté (sans aucun
saut de ligne ni indentation).

Bref il vaut mieux utiliser un vrai filtre XML basé sur le DOM après
parsing.

Noter aussi que XML/OSM n'est pas le seul format de sortie possible pour
Overpass. XML est un peu "verbeux" avec ses tags de fermeture. D'autres
formats possibles sont CSV, Turtle, ... Overpass permet de construire son
format de sortie adhoc (utilisant la syntaxe de formatage pour le CSV). On
a des exemples sur le wiki.
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à