x

Overpass API für dummies


  1. Overpass API für dummies · softcake (Gast) · 01.07.2012 13:16 · [flux]

    Hallo,

    möchte meine Kartendaten über die Overpass API herunterladen. Leider mag mir das nicht so recht gelingen. Die Datenmenge des downloads besitzt gerade mal ein Zehntel des Volumens, welches ich eigentlich erwarte. Es lässt sich damit auch keine Karte generieren (mkgmap). Splitter generiert gerade mal eine Kachel, anstatt wie gewohnt sechs.

    Mein Ausschnitt hat die Dimensionen left=10.6 bottom=49.2 right=12.9 top=50.7, also gestalte ich die Abfrage an die Overpass API folgendermaßen:

    (
    node(49.2,10.6,50.7,12.9);
    rel(bn)->.x;
    way(bn);
    rel(bw);
    );
    out meta;

    Mein Ausschnitt hat normalerweise ca. 1.8GByte. Die Overpass-Daten kommen gerade mal auf 160MByte.

    Was mache ich falsch?

    Grüße, Thomas


    • Re: Overpass API für dummies · aighes (Gast) · 01.07.2012 13:18 · [flux]

      🙄

      Schonmal von download.geofabrik.de gehört?


    • Re: Overpass API für dummies · viw (Gast) · 01.07.2012 13:35 · [flux]

      softcake wrote:

      Mein Ausschnitt hat normalerweise ca. 1.8GByte. Die Overpass-Daten kommen gerade mal auf 160MByte.

      Was mache ich falsch?

      Grüße, Thomas

      Als erstes ist die Datenmenge das Problem. Denn die 1,8 GB hat die Overpassapi nicht mal eben für dich frei. Das zweite Problem ist wie gesagt wenn du alles für deine Karte runterladen möchtestet, dann nimm statt dessen Extrakte und bearbeite filtere diese entsprechend. Das entlastet nicht nur die Overpassapi erheblich, sondern auch deine Nerven.


    • Re: Overpass API für dummies · softcake (Gast) · 01.07.2012 14:37 · [flux]

      aighes wrote:

      🙄

      Schonmal von download.geofabrik.de gehört?

      Ja. Das ist leider nur praktisch für Leute, die zufällig nicht an der Bundesgrenze wohnen. Hole aktuell meine Daten über http://140.78.94.22/osm/ (Germany+50). Wollte mir halt nur schnell mal aktuelle Daten saugen.

      Thomas


    • Re: Overpass API für dummies · softcake (Gast) · 01.07.2012 14:39 · [flux]

      viw wrote:

      softcake wrote:

      Mein Ausschnitt hat normalerweise ca. 1.8GByte. Die Overpass-Daten kommen gerade mal auf 160MByte.

      Was mache ich falsch?

      Grüße, Thomas

      Als erstes ist die Datenmenge das Problem. Denn die 1,8 GB hat die Overpassapi nicht mal eben für dich frei. Das zweite Problem ist wie gesagt wenn du alles für deine Karte runterladen möchtestet, dann nimm statt dessen Extrakte und bearbeite filtere diese entsprechend. Das entlastet nicht nur die Overpassapi erheblich, sondern auch deine Nerven.

      Ok, also weiterhin Germany+50. Funktioniert ja auch gut. Hätte halt schnell mal aktuelle Daten gebraucht.

      Grüße, Thomas


    • Re: Overpass API für dummies · aighes (Gast) · 01.07.2012 16:29 · [flux]

      Es gibt dort auch Europa und wenn dir das jedesmal zuviel ist, dann kann man die Datei auch updaten...


    • Re: Overpass API für dummies · Lübeck (Gast) · 01.07.2012 21:18 · [flux]

      Hi!

      Kurz gefragt wie kann man updaten ?

      Ich dachte das geht nur beim Planet File ?!?

      Gruß Jan


    • Re: Overpass API für dummies · aighes (Gast) · 01.07.2012 21:29 · [flux]

      Ne...das geht mit kleineren Extrakten ganz ähnlich. Es gibt allerdings Probleme, wenn ein Objekt von außen in das Extrakt reingeschoben wird. Das Objekt sollte dann fehlen. Aber wenn du Europe aktualisierst und dann D+50 ausschneidest sollte man das egtl. vernachlässigen können. Auf der anderen Seite sehe ich egtl. auch nicht so das Problem, den ganzen Planeten zu aktualisieren. Den Plattenspeicher sollte egtl. jeder haben, der auch Garminkarten von ganz Deutschland rechnen kann.


    • Re: Overpass API für dummies · hurdygurdyman (Gast) · 09.11.2015 11:13 · [flux]

      Bevor ich einen neuen thread eröffne, mache ich hier weiter.
      Wer kann mir vom Schlauch helfen?
      Ich benötige die Syntax, mit der ich nodes finde, die den gemeinsamen Verbindungspunkt von ways mit verschiedenen Eigenschaften eines tags gehören und farbig hervorgehoben werden sollen. Gleichzeitig ist dieser node das Ende eines bestimmten way-typs.

      Beispiel:
      Der node verbindet einen highway=unclassified mit highway=residential und es schließt am node kein weiterer highway=unclassified an.
      way: http://www.openstreetmap.org/way/269418 … 8/11.41728
      am node: https://www.openstreetmap.org/node/261017204


    • Re: Overpass API für dummies · mmd (Gast) · 09.11.2015 12:18 · [flux]

      hurdygurdyman wrote:

      Wer kann mir vom Schlauch helfen?

      Das geht schlicht und ergreifend nicht mit Overpass.

      Gruß,
      mmd


    • Re: Overpass API für dummies · wambacher (Gast) · 09.11.2015 12:25 · [flux]

      mmd wrote:

      Das geht schlicht und ergreifend nicht mit Overpass.

      Für die ganz Mutigen: Das geht mit PostGIS-Topology. Das ist eine PostGIS-Erweiterung, die für solche Aufgaben geschaffen wurde. Es werden dort Graphen aufgebaut, die die geometrischen Zusammenhänge zwischen den Objekten berücksichtigen. Beim Routing werden ähnliche Datenstrukturen verwendet.

      Der Einstig ist nicht einfach und ich hab das auch noch nicht richtig geschnallt. Aber das ist der Weg.

      Gruss
      walter


    • Re: Overpass API für dummies · hurdygurdyman (Gast) · 09.11.2015 12:32 · [flux]

      wambacher wrote:

      mmd wrote:

      Das geht schlicht und ergreifend nicht mit Overpass.

      Für die ganz Mutigen: Das geht mit PostGIS-Topology.
      ...

      Schade...
      und für fehlt mir der Mut 🙁


    • Re: Overpass API für dummies · woodpeck (Gast) · 09.11.2015 15:15 · [flux]

      hurdygurdyman wrote:

      Ich benötige die Syntax, mit der ich nodes finde, die den gemeinsamen Verbindungspunkt von ways mit verschiedenen Eigenschaften eines tags gehören und farbig hervorgehoben werden sollen. Gleichzeitig ist dieser node das Ende eines bestimmten way-typs.

      Nimm doch eine Programmiersprache Deiner Wahl und schreibe folgendes:

      1. Lies einen Way ein
      2. Ist der Way eine Straße, wenn ja, merke Dir Highway-Typ, sonst gehe zu 1
      3. Nimm die erste und letzte Node-ID des Ways, und merke Dir "an dieser Node-Id endet/beginnt ein Way vom Typ X". In den meisten Skriptsprachen würdest Du dafür ein Hash von Arrays einsetzen, also in Perl zum Beispiel

      $highwaytypes{$startnode} = [] unless defined($highwaytypes{$startnode}) # mit leerem Array initialisieren
      push(@{$highwaytypes{$startnode}}, $aktueller_highwaytyp);

      und ebenso für den Endnode. Später hast Du dann in $highwaytype eine Struktur, die in JSON-Notation so aussieht:

      highwaytype: {
      "1234567" : [ "residential", "residential" ],
      "424242" : [ "tertiary" ],
      "11111" : [ "motorway_link", "motorway_link", "motorway" ],
      ...
      }

      Dann schreibst Du noch etwas Code, der diese Struktur untersucht, und der Dir diejenigen Nodes rausfiltert, bei denen die Liste "nicht aufgeht" (also 2x "residential" ist ok, und wenn ich Dich richtig verstehe, ist 2x "residential" und 1x "tertiary" auch ok, aber 1x "residential" und 1x "tertiary" nicht...)

      Um dann die Node-Koordinaten dieser Nodes herauszufinden, könntest Du natürlich Overpass bemühen, oder Du liest Dein File einfach ein zweites Mal ein und schnappst Dir die notwendigen Koordinaten. Das erspart Dir, im ersten Durchgang *alle* Koordinaten "auf Vorrat" zu speichern, was u.U. viel Platz braucht.

      Diesen Code kriegst Du in so ziemlich jeder Sprache einigermassen einfach hin. Wenn Du keine PBFs einlesen kannst/willst, kannst Du ja XML verwenden, das lässt sich notfalls auch ohne XML-Parser lesen.

      Bye
      Frederik


    • Re: Overpass API für dummies · hurdygurdyman (Gast) · 09.11.2015 16:38 · [flux]

      woodpeck wrote:

      hurdygurdyman wrote:

      Ich benötige die Syntax, mit der ich nodes finde, die den gemeinsamen Verbindungspunkt von ways mit verschiedenen Eigenschaften eines tags gehören und farbig hervorgehoben werden sollen. Gleichzeitig ist dieser node das Ende eines bestimmten way-typs.

      Nimm doch eine Programmiersprache Deiner Wahl und schreibe folgendes:

      1. Lies einen Way ein
      2. Ist der Way eine Straße, wenn ja, merke Dir Highway-Typ, sonst gehe zu 1
      3. ...
      Bye
      Frederik

      Das ist ja lieb gemeint, aber selbst wenn ich meinem Hirnschmalz zutraue, nach einer Nutzungsdauer von sechzig Jahren noch eine Programmiersprache zu erlernen, stellt sich die Frage, ob dies bei der Restnutzungszeit sinnvoll ist.
      Aber man hat ja seine Kontakte...


    • Re: Overpass API für dummies · mmd (Gast) · 09.11.2015 19:36 · [flux]

      hurdygurdyman wrote:

      Das ist ja lieb gemeint, aber selbst wenn ich meinem Hirnschmalz zutraue, nach einer Nutzungsdauer von sechzig Jahren noch eine Programmiersprache zu erlernen, stellt sich die Frage, ob dies bei der Restnutzungszeit sinnvoll ist.
      Aber man hat ja seine Kontakte...

      Ich hab mich ja schon etwas gefragt, warum man genau so eine Anfrage stellen möchte 😎

      Vielleicht gibt es für das eigentliche Problem ja noch eine andere Möglichkeit.

      Gruß,
      mmd


    • Re: Overpass API für dummies · hurdygurdyman (Gast) · 09.11.2015 19:39 · [flux]

      mmd wrote:

      Ich hab mich ja schon etwas gefragt, warum man genau so eine Anfrage stellen möchte 😎

      Vielleicht gibt es für das eigentliche Problem ja noch eine andere Möglichkeit.

      Guggsdu
      http://forum.openstreetmap.org/viewtopi … 16#p560216 🙂


    • Re: Overpass API für dummies · mmd (Gast) · 09.11.2015 19:46 · [flux]

      hurdygurdyman wrote:

      mmd wrote:

      Ich hab mich ja schon etwas gefragt, warum man genau so eine Anfrage stellen möchte 😎

      Vielleicht gibt es für das eigentliche Problem ja noch eine andere Möglichkeit.

      Guggsdu
      http://forum.openstreetmap.org/viewtopi … 16#p560216 🙂

      Gut, was man noch recht einfach machen könnte, wären die Übergänge zwischen unclassified und residential anzuzeigen:

      http://overpass-turbo.eu/s/cyS

      Mit dem Abzählen klappt's dann aber definitiv nicht mehr, auch nicht mit dem ersten oder letzten Knoten im Weg als Einschränkung...

      Gruß,
      mmd