Je touche au but mais je n'arrive pas à indiquer les coordonnées géographiques des admin_centre.

Pour l'instant ça marche avec ça :

[out:csv(_row;false)][timeout:100];

make out _row = "insee,commune,bourg"; out;

area[name="Bourgogne"]["disused:admin_level"=4]->.bourgogne;

rel(area.bourgogne)[boundary=administrative]["admin_level"=8]->.communes;

foreach.communes->.commune(
  node(r.commune:"admin_centre")->.bourg;
  make out _row =
    commune.u(t["ref:INSEE"]) + "," +
    commune.u(t["name"]) + "," +
    bourg.u(t["name"])
    ;
  out geom;
);

Si j'ajoute par exemple la latitude avec ' bourg.u(t[::lat])' dans mon "make out", j'obtiens une erreur.

Comment faire ?

Merci

Samy



Le 14/11/2017 à 17:20, Samy Mezani a écrit :
Merci Adrien,

Ça me met sur une bonne piste.

Je vais essayer de formatter avec make out _row que j'ai vu à https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_API_by_Example#Wiki_table_generator_.28since_0.7.54.29

Mais bon, faut déjà comprendre. ;-)

Merci

Samy

Le 14/11/2017 à 17:01, PanierAvide a écrit :
Bonjour,

Après quelques recherches, j'ai pas trouvé mieux que ça :

|[out:csv("ref:INSEE","name",::lat,::lon)][timeout:100];||
||area[name="Bourgogne"]["disused:admin_level"=4]->.bourgogne;||
||rel(area.bourgogne)[boundary=administrative]["admin_level"=8];||
||foreach(||
||  out;||
||  node(r:"admin_centre");||
||  out;||
||);|

On récupère les limites communales, et pour chacune on affiche les infos de la relation, puis sur la ligne suivante les infos du noeud admin_centre. J'ai pas vu de moyen de mélanger la sortie d'un noeud et de sa relation. Avec une bonne expression régulière derrière, on doit pouvoir fusionner les lignes deux à deux, et arriver au résultat escompté.

Cordialement,

Adrien.


Le 14/11/2017 à 14:49, Samy Mezani a écrit :
Bonjour,

Je cherche à faire une requête Overpass API pour rechercher les communes d'un territoire avec leur "ref:INSEE" et les coordonnées géographiques de leur "admin_centre"

Je suis contraint de rechercher les relations avec "admin_level"=8, et non les nodes avec ce tag, car j'ai remarqué que nombre d' "admin_centre" communaux n'ont plus de "ref:INSEE" ou ont parfois des "ref:FR:INSEE"

Comment faire pour retourner à la fois les admin_centre avec leurs coordonnées, et le "ref:INSEE" et le name de leur relation parente ?

Pour l'instant j'ai ça, mais ::lat et ::lon sont les centroïdes des communes :

    [out:csv("ref:INSEE","name",::lat,::lon)][timeout:100];

    area[name="Bourgogne"]["disused:admin_level"=4]->.bourgogne;

    rel(area.bourgogne)[boundary=administrative]["admin_level"=8];

    out ;

Avec ça j'ai bien les coordonnées des "admin_centre" mais je n'ai pas le "name" des communes ni toujours le "ref:INSEE" :

    [out:csv("ref:INSEE","name",::lat,::lon)][timeout:100];

    area[name="Bourgogne"]["disused:admin_level"=4]->.bourgogne;

    rel(area.bourgogne)[boundary=administrative]["admin_level"=8]->.communes;

    node(r.communes:"admin_centre");

    out ;


Merci

Samy

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



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


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

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

Répondre à