Extraire une relation

Bonjour,

Est-il possible d’extraire d’osm des relations ?

Je m’explique, j’aimerais récupérer le tracé des lignes de bus de ma commune.
Dans osm, elles sont matérialisées par des relations.
Y a-t-il un moyen d’extraire ces informations ? sous forme de trace gps ? ou sous d’autres formes ?

Merci,

M.

Bonjour,

Avec JOSM dans le menu Fichier(File) tu prends “Telechargement d objet” ( “Download Object”) tu indiques l id de la relation qui t interesse et tu verifies que telecharger les membres est bien coche.
Tu obtiendras la relation en format XML OSM.
Ensuite une fois que tu as la relation dans ton calque tu fais clique droit sur le calque Enregistrer Sous ( Save As ) et tu prends le format GPX


Si c est le format OSM qui t interesse tu peux l avoir par l API : http://www.openstreetmap.org/api/0.6/relation/2914214

Tu pourrais donner le nom de la commune ? Tu veux juste le tracé ou aussi des informations liées comme le nom des lignes, les arrêts, même éventuellement la couleur de la ligne (si c’est dans les données OSM).

Il y a d’autres moyens de récupérer l’ensemble des lignes sans passer par JOSM et un chargement de chaque relation. On peut tout faire d’un coup. Si tu ne veux que le tracé, ça peut être fait en quelques secondes.

Et il y a l’overpassapi qui permet des trucs d’enfer quand on a digéré son langage de requêtage.

[timeout:900];
//area["name:nl"~"Vlaams-Brabant|Antwerpen|..st-Vlaanderen"] -> .VBAntw; 
//area["alt_name:nl"="Belgisch Limburg"] -> .Limb;
area["name:en"="Belgium"] -> .BE;

(
  //node(area.VBAntw);
  //node(area.Limb);
  node(area.BE);
) -> .allnodesinArea;
(
  rel(bn.allnodesinArea)
    ["type"="route"]
    ["route"~"bus|tram"]
  ->.routes;
  .routes << ->.route_masters;
  (
    node.allnodesinArea
      ["highway"="bus_stop"]
    ->.stops;
    node.allnodesinArea
      ["amenity"="bus_station"]
    ->.busstations;
    node.allnodesinArea
      ["railway"="tram_stop"]
    ->.tstops;
    node.allnodesinArea
      ["public_transport"]
    ->.platforms;
    node
      ["highway"="bus_stop"]
      ["operator"~"De Lijn|TEC|STIB|MIVB"];
    node
      ["railway"="tram_stop"]
      ["operator"~"De Lijn|TEC|STIB|MIVB"];
    node
      ["public_transport"="platform"]
      ["operator"~"De Lijn|TEC|STIB|MIVB"];
  ) -> .stopsPlatformsAndStopPositions;
  (
    way(bn.allnodesinArea)
      ["highway"="bus_guideway"];
    way(bn.allnodesinArea)
      ["railway"="tram"];
  ) ->.tracks;
  way(bn.allnodesinArea)
    ["amenity"="shelter"]
    ["shelter_type"="public_transport"]
  ->.shelters;
  node(w.shelters);
  node.allnodesinArea
    ["amenity"="shelter"]
    ["shelter_type"="public_transport"]
  ->.shelternodes;
  node(r.routes);
  way(bn)->.parentways1;
  node(w.parentways1);
  rel(bw.parentways1);
  way(r.routes);
  node(w);
  way(bn.stopsPlatformsAndStopPositions);
  rel(bn.stopsPlatformsAndStopPositions)
    ["type"="public_transport"]
  -> .stopAttributes;
  node(r.stopAttributes);
  way(r.stopAttributes);
  node(w);
  node(w.tracks);
);
out meta;

Salut,

Merci de vos réponses.
Je vais essayer avec josm.

Sur Le Havre. C’est effectivement surtout le tracé qui m’intéresse.

Ca m’intéresse :slight_smile:

Je vais farfouiller du coté de l’overpassapi aussi alors.

M.

PS : c’est marrant j’étais persuadé d’être connecté en écrivant mon message vendredi

Pour expérimenter avec des requêtes Overpass, Overpass Turbo est génial:

J’ai adapté la requête pour ta région et enlevé certaines clauses superflues.

http://overpass-turbo.eu/s/2JL

Polyglot

Bonjour polyglot

j’ai tenté de reproduire ta requête sur Marseille.
Les noeuds ressortent parfaitement. En revanche les lignes (way) sont discontinues…
Comment régler ce problème de discontinuité?
Je comprend vaguement la partie du code concernant les noeuds.
Par contre celle des way et des relations ne me parle pas du tout. or il me semble que c’est de la que vient le problème.

Peux tu m’aider?
Est-il possible de me guide vers les tutos qui t’on permis de faire cette requête?

Cordialement

Si la ligne est discontinue, c’est peut-être parce que la relation dans OSM est incomplète tout simplement. Il faut vérifier que le highway est bien dans la relation de type “route” avant d’envisager un problème dans la requête overpass:
http://wiki.openstreetmap.org/wiki/Relation:route#Bus_routes_.28also_trolley_bus.29

Bonjour
je vais vérifier ce dont tu me parles.
Je pense tout de même que la requête est incomplète car dans openstreetmap.org dans la couche carte de transport, le lignes de bus sont complètes. :frowning:
je ne sais pas du tout programmer en JSon je tente de retraivailler la requête en script osm. Mais c’est pas évident
Merci encore de ta réponse

Re
En fait, j’ai tout simplement repris une de tes requêtes :
{{key=route}}
{{value=bus}}




<bbox-query {{bbox}}/>





en modifiant juste la valeur de la route.
ça semble fonctionner

Merci