Skip to content

Latest commit

 

History

History
83 lines (72 loc) · 2.81 KB

File metadata and controls

83 lines (72 loc) · 2.81 KB

OpenStreetMap durchsuchen mit Overpass turbo

Was ist Overpass turbo

Wie funktioniert es

  • Auf die Website gehen-> Query schreiben und ausführen -> Daten erhalten
  • Export in div. Formaten möglich (KML, GeoJSON,GPX, CSV)
  • Die Abfrage wird automatisch auch in der Karte angezeigt
  • Export der Karten als png oder Kartenlink
  • Teilen der Abfragen ebenfalls möglich, via Link
  • Abfragen werden in einer Query-Sprache (Overpass QL) formuliert

Hintergrund, Daten in der OSM

Synthax der Overpass QL

  • Language Guide
  • Beispiele
  • Drei Typen von Objekten: node (Punkt), way (Weg), rel (Rel.) oder relation (Relation)
  • Filtern der Tags der Objekttypen über die Key-Value Paare. Bspw. node["amenity"="library"]
  • Ausgabe räumlich einschränken über [bbox:south,west,north,east]
  • Suchen in der Nähe von gefilterten Objekten mit around
  • Suchen nach Strings über RegEx zb. node[~"^name(:.*)?$"~"."]; Sucht alle Namen mit beliebigem Wert.

Beispiele

// Beispiel 1: Einfache Suche nach Briefkästen
// Suche begrenzen mit Bounding Box um den Größe des Ergebnisses zu beschränken
node["amenity"="post_box"]({{bbox}});
out;
// Query triggert Hinweis das Geometrie fehlt, weil Wege keine Koordinaten haben
// Wege und Relations bekommen Geometrie über die referenzierten Knoten
way["amenity"="restaurant"]({{bbox}});
out;

// Lösung 1: collapse the geometry to a single coordinate per object
//out center;

//Lösung 2:  let Overpass API resolve the coordinates for you
// out geom;

Wenn wir alle Objekt Typen mit amenity=restaurant möchten dann können wir auch folgendes machen:

node["amenity"="restaurant"]({{bbox}});
out;
way["amenity"="restaurant"]({{bbox}});
out center;
relation["amenity"="restaurant"]({{bbox}});
out center;
//Ausgabe von Bars/Pubs im Innenstadtbereich von Gießen als Liste mit Adresse
[bbox:(50.5800,8.6691,50.5915,8.6834)]
[out:csv(name,amenity,"addr:city","addr:street","addr:housenumber","addr:postcode")];
// gather results
(node["amenity"="bar"];
node["amenity"="pub"];);
// print results
out;
//Suchen in der Nähe
area[name="Gießen"];
node(area)[highway=bus_stop];
// Distanz in Metern
node(around:50)[amenity=restaurant];
out;