overpass turbo

Einfache Analyse von OpenStreetMap-Daten

von Martin Raifer (OSM: tyr_asd)

Einleitung

Die graphische Benutzeroberfläche der Overpass API.

Overpass API:
Durch spezielle Abfragen beliebige Teile von OpenStreetMap-Daten filtern.

“The Overpass API (or OSM3S) is a read-only API that serves up custom selected parts of the OSM map data. It acts as a database over the web: the client sends a query to the API and gets back the data set that corresponds to the query.”

Ausgangspunkt

„Wie bekomme ich meine Daten wieder zurück?“

bisher

planet.osm / Extrakte

:(

Overpass API

:)

Rohdaten

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="Overpass API">
<note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
<meta osm_base="2013-06-10T16:24:05Z"/>

  <node id="336133372" lat="46.6296301" lon="10.4486610">
    <tag k="amenity" v="place_of_worship"/>
    <tag k="denomination" v="catholic"/>
    <tag k="historic" v="monument"/>
    <tag k="name" v="Benediktinerinnenkloster St. Johann"/>
    <tag k="name:de" v="Benediktinerinnenkloster St. Johann"/>
    <tag k="name:en" v="Benedictine Convent of Saint John"/>
    <tag k="name:it" v="Convento San Giovanni"/>
    <tag k="name:rm" v="Clostra Son Jon"/>
    <tag k="note" v="UNESCO World Heritage Site"/>
    <tag k="religion" v="christian"/>
    <tag k="tourism" v="attraction"/>
    <tag k="wheelchair" v="yes"/>
    <tag k="wikipedia" v="de:Benediktinerinnenkloster St. Johann"/>
  </node>
</osm>

:(

→Overpass TURBo←

:)

Beispiel

Trinkbrunnen in einem Gebiet


...

overpass API:

Was noch alles geht

  • Abfrage nach Timestamp
    latest-changes
  • Abfrage nach User
  • Suche in Polygon

overpass turbo

Overpass API + UI + Erweiterungen

+ „erweiterte“ overpass abfragen

  • Shortcuts:
 <bbox-query {{bbox}} />

statt:

<bbox-query s="46.41253" w="11.16760" n="46.51894" e="11.32415" />
  • Stylesheets:
 {{style: … }}

+ MapCSS


+ MapCSS


+ Export

  • OSM-XML
  • GeoJSON
  • GPX
  • PNG

+ viele weitere Kleine Features

  • Abfragen Teilen
  • “repair query 
  • Templates
  • einbettbare Karte
  • uvm.

Ziele

  • “Give the data back to the people”
  • Barriere für den Zugriff auf OSM-Daten senken
  • „80% der Probleme in 20% der Zeit“
  • Brücke zwischen Desktop-GIS und Web-GIS

Technik

100% JavaScript im Browser
(OSM likes JS: iD, Leaflet, KothicJS, …)

Datenanzeige: Leaflet
Dateformat: GeoJSON

Ablauf

  1. Erweiterte Query parsen
  2. Absenden der Anfrage an den Overpass API Server
  3. Resultat interpretieren:
    Fehlermeldung oder gültige XML/JSON Daten?

  4. OSM-Daten parsen und in GeoJSON konvertieren
  5. MapCSS Styles anwenden
  6. Vektordaten mit Hilfe von Leaflet darstellen

“Polygon Features”

OSM-way
Darstellung: Linie oder Polygon?

Heuristik

Polygon dann, wenn:

  • Weg geschlossen
  • nicht area=no 
  • Vorhandensein bestimmter Tags, z.B.:
    • building
    • highway=services (nicht aber highway=service)

Small Features Dilemma

Problem:
POI kann Punkt oder Fläche sein
Zoomen: Punkt unverändert, Fläche skaliert
„unfair“
Lösung:
Leaflet Small Features Plugin
Beim Zoomen: Sobald Größe ≲ Punkt-POI:
Darstellung ebenfalls als Punkt

Zukunft

1. Mehr MapCSS

Hintergrund setzen
canvas {  background-map: url('http://tiles.example.com/{z}/{x}/{y}.png');}
Labels
node[amenity=restaurant] {  text: content('name');}
Popup-Inhalt setzen
node[highway=bus_stop] {  popup: 'Eine Bushaltestelle';}
Linien-Casings

2. Plugins

  • alternative Datenquellen …
  • … und neue Datenformate
  • mehr Export-Formate
  • UI-Erweiterungen
  • uvw.

Einbinden z.B. durch
{{plugin:elevation-profile}}

UI-Erweiterung: Beispiel Höhenprofile

Clustered markers Anzeige


3. NO MORE “RUN”

Bonus: Stats

Ausgeführte Abfragen seit mitte Jänner:
~60.000
Seitenaufrufe / Benutzer:  


Danke! Noch FRAGEN?

Martin Raifer
http://github.com/tyrasd

overpass turbo FOSSGIS 2013

By Martin Raifer

overpass turbo FOSSGIS 2013

A short presentation (in German ) about overpass turbo (http://overpass-turbo.eu) I held at the FOSSGIS 2013.

  • 5,833