Overpass Turbo
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 31 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/15838 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
3
6
7
12
13
14
16
20
25
26
27
00:00
Graphical user interfaceGebiet <Mathematik>Point (geometry)Raw image formatFiltrationDatabaseWeb browserMAPPERWikiQuery languageDepictionFilter <Informatik>Information privacyInternetFactorizationComputer animation
02:34
Laden <Datenverarbeitung>APIEscape characterGraphical user interfaceYouTubeGoogleComputer animationXML
02:54
Laden <Datenverarbeitung>LeadLarge eddy simulationWeb browserGraphical user interfaceVersion <Informatik>Bloch waveExpert systemEditorStatisticsServer (computing)Ubiquitous computingProcess capability indexCode variabler LängeQuery languageBoom (sailing)Web browserRadiusQuery languageClefSpur <Datentechnik>MetreXMLSmart cardXML
09:08
Power (physics)Query languageComputer animation
09:38
Gebiet <Mathematik>Musical ensemble
09:58
NormaleGeodesicSystems <München>Vapor barrierMAPPERTemplate (C++)ICONWeb serviceQuery languageWeb browserQuery languageDirection (geometry)Query languageError messageInflection pointFilm editingProgrammablaufDatenformatInterface (chemistry)YES <Computer>ClefHeuristicLinieStatistikerTurbo-CodeCoordinate systemRaw image formatGoogle MapsSurfaceGraphical user interfaceField extensionAlgebraic closureMathematical structureFile formatPlug-in (computing)Hausdorff spaceSocial classAbsolute valuePoint (geometry)Stack (abstract data type)Lattice (order)WORKS SuiteService (economics)StatisticsGAG <Compiler-Compiler>UpdateImplementationMittelungsverfahrenNumberLink (knot theory)PolygonInsertion lossComputer animation
Transcript: German(auto-generated)
00:00
Hallo, ich möchte heute über Overpass Turbo reden, euch das Web-Tool von mir vorzustellen, das ermöglicht, Open-Street-App-Daten relativ einfach zu analysieren und darunter verstehe ich tatsächlich Filtern und Darstellen. Finden kann man das Tool unter overpass-turbo.eu und sollte auf jedem Browser funktionieren, außer Internet-Export 8 abwärts.
00:26
Overpass Turbo ist im Prinzip die grafische Oberfläche für die Overpass API. Jetzt noch eine schnelle Zwischenfrage, wer kennt die Overpass API noch nicht? Ok, doch ein paar. Die Overpass API ermöglicht es, durch spezielle Abfragen beliebige Teile von Open-Street-App zu filtern,
00:49
beziehungsweise wie es in Wiki definiert wird, die Overpass API ist eine Read-Only-API, die custom-selecte Teile der Open-Street-Daten nutzt. Das Ziel dahinter, oder die Ausgangsfragestellung, die ich mir gestellt habe, ist,
01:05
als Mapper träge ich viele Daten zu Open-Street-App bei. Irgendwann komme ich an einen Punkt, wo ich mir denke, wie bekomme ich die Daten wieder zurück? Oder wie bekomme ich meine eigenen Daten zurück? Wie bekomme ich die Daten von anderen zurück oder spezielle Daten, die mich interessieren?
01:21
Der traditionelle Zugang dazu war, dass es ein Planet-OSM-File gab, das alle Daten an der ganzen Datenbank enthielt, beziehungsweise Extrakte davon lässt, aber für die allermeisten Problemstellungen positiv ausgedrückt zu viel des Guten.
01:41
Danach kam die Overpass API, die ermöglicht es, diese Filterung durchzuführen, nur diese Daten zu bekommen, die man gerade möchte. Man ist happy, aber ein Problem gab es noch, denn die Overpass API stellt nur Rohdaten zur Verfügung, also OSM-XML-Files.
02:05
Und an diesen Punkten setzt Overpass Turov ein, eine grafische Benutzung, die praktisch diese ganzen Schritte dem User einfacher ermöglichen.
02:20
Fangen wir mit einem Beispiel an, und zwar, ich möchte gerne wissen, ob es in einem Gebiet Trinkbrone gibt und wo. Aha, funktioniert das nicht so gut?
02:52
Dann so.
03:20
Gerade vorher ging es noch.
03:26
Nein, die Internetverbindung passt ja. Zum Beispiel hier die Karten, weiß ich nicht. Naja, ist hier noch ein anderer Browser installiert?
03:49
Letzte Chance.
04:00
Das Internet, oder was? Aha, der Teilserver ist sehr komisch.
05:00
Okay, da muss ich sich einfach noch vorstellen, dass hier an Hintergrund noch eine Karte wäre. Okay, also Overpass Queries werden im Prinzip mit einer XML-Syntax geschrieben.
05:25
Es gäbe auch eine alternative Syntax, aber ich finde diese persönlich läserlicher. Man definiert einfach Queries und darauf, darin kann man Filterregeln hineinschreiben.
05:41
Zum Beispiel eine Abfrage nach Key and Value, oder eine Abfrage nach einer bestimmten Bounty Box. Man kann aber auch komplexere Sachen machen, zum Beispiel eine Query nach einer Area,
06:05
die den Namen Rapas Villona hat und alle Trinkbronen, die sich in dieser Area befinden,
06:20
anstatt der Bounty Box. Oder, wenn ich jetzt mein Wasser unter einem Baum trinken möchte, kann ich dann noch Bäume suchen, die sich in der Nähe dieser Trinkbrunnen befinden.
06:40
Das mache ich mit einer WriteTrain Query. Und mit dem Around Statement kann man einen Radius definieren, zum Beispiel 50 Meter,
07:13
innerhalb der sich die Bäume befinden sollen, die ich um die vorher gesuchten Trinkbrunnen gesucht habe.
07:33
Wunderbar, danke dir. Was jetzt noch ein bisschen problematisch ist, ist, dass ich die Trinkbrunnen nicht mehr von den Bäumen unterscheiden kann.
07:50
Dazu füge ich jetzt ein Style hinzu.
08:06
Und zwar möchte ich alle Notes mit Typ Natural Clarity in grün anzeigen.
08:34
Und damit vielleicht ein bisschen kleiner.
08:56
Ich hoffe, man erkennt es. Jetzt sieht man die Bäume ganz deutlich verschieden von den Trinkbrunnen.
09:04
Das war jetzt das Ende meiner Live-Demo, die jetzt leider nicht so gut geklappt hat. Aber mit der Overpass API kann man natürlich noch viele, viele andere Sachen machen. Zum Beispiel kann man Abfragen nach Timestamp machen oder nach Usern.
09:23
Zum Beispiel wenn man nur die Daten bekommen möchte, die man selbst hinzugefügt hat. Oder Abfragen in Proligionen. Ganz schnell möchte ich noch, obwohl es mit Overpass Soba nichts direkt zu tun hat, das folgende Tool zeigen,
09:41
dass die letzten Änderungen innerhalb der letzten Woche über ein bestimmtes Gebiet dargestellt. Und das funktioniert im Hintergrund auch mit der Overpass API.
10:02
Okay, also Overpass Soba ist die Overpass API plus eine grafische Benutzeroberfläche plus ein paar Erweiterungen. Zuerst gibt es erweiterte Overpass-Abfragen. Und zwar muss man nicht mehr statt der Bounty Box Query alle Koordinaten selber händisch eingeben oder reinkopieren.
10:24
Sondern kann einfach nur durch das Kürzel-B-Box wird das automatisch ausgefüllt. Oder wie wir es schon gesehen haben, kann man Map-CSS-Styles hinzufügen. Map-CSS ist relativ...
10:42
Also man kann mit Map-CSS sehr viel machen. Nicht nur Punktefarben ändern, sondern auch Linienstile oder zum Beispiel das einfache Kartogramm erstellen sogar. Hier speziell sieht man Städte in Italien mit der Fläche der Punkte provozional zur Einwohnerzahl.
11:02
Was Overpass Soba auch noch kann, ist die Daten exportieren. Neben dem Rohdatenformat OSM.XML geht auch GeoJSON oder GPX oder PNG-Bilder. Und noch zusätzlich gibt es viele kleinere Features, wie zum Beispiel Thermalinks für Queries.
11:23
Oder wenn Queries bestimmte oft vorkommende Fehler haben, können die automatisch repariert werden. Zum Beispiel wenn nur Ways ohne Punkte geladen werden, kann das natürlich von der Karte nicht dargestellt werden,
11:42
weil die Koordinaten ja ausschließlich in den Notes stecken. Und da versucht Overpass Soba zu helfen, indem es genau diese oft vorkommende Fehler repariert. Also den kann man Templates definieren, um leicht lesbare Thermalinks auf Overpass Soba zu setzen.
12:05
Oder es gibt eine einbietbare Karte und vieles mehr. Das Ziel, das ich mit Overpass Soba verfolge, ist, wie ich vorher schon gesagt habe, die Daten den Mapper und den Benutzern wieder zurückzugeben, auf einfache Art und Weise.
12:21
Und damit die Barriere für eine Zugabe auf OSM-Daten zu senken. Und damit die Wiederverwendbarkeit von OSM-Daten zu erhöhen. Und damit die Popularität von OSM zu erhöhen und alles wird besser. Und außerdem, dass viele oft vorkommende Problemstellungen, Auswertungen in kürzerer Zeit gemacht werden können.
12:46
Und in gewisser Sinne vielleicht auch eine Brücke zwischen den klassischen Desktop-GIS-Leuten oder Systemen und Web-GIS-Systemen oder Sachen wie Google Maps zu bilden. Denn ich finde, wenn man nicht von der GIS-Seite kommt, zum Beispiel von der Informatik,
13:05
und sich über OSM mit Geodaten in Kontakt kommt, dann ist das eine relativ große Hürde, mit Desktop-GIS-Systemen zu arbeiten. Für mich war es zumindest so. Weil das Erste, mit dem man in Kontakt kommt, sind Coronatenreferenzsysteme und vieles mehr.
13:27
Und von dem hat man als OSM typischerweise nichts gehört. Was man eher kennt, sind die OSM-Datenstrukturen, normale GPS-Koordinaten und möchte eigentlich mit dem arbeiten.
13:40
Und deswegen finde ich, dass die Overpass API-Fraggesprachen relativ für OSM leichter zu lernen sein sollte, oder dadurch dann eben Overpass-Dopo einfacher zu benutzen ist als ein normales Desktop-GIS-System. Die Technik dahinter ist hauptsächlich JavaScript, das im Browser abläuft.
14:06
Letzterseits sind ja viele Projekte im Umfeld von OSM auf dieser Technik entstanden. Z.B. der HD-Editor oder etwas früher schon CoffeeJS, ein Renderer, der direkt im Browser läuft.
14:22
Für die Datenanzeige verwende ich Leaflet und intern verwende ich als Datenformat GeoJSON. Der Programmablauf ist eigentlich ziemlich straight forward, die Qualiseren gepasst, dann wird die Abfrage zum Overpass-Server geschickt. Das heißt, die Daten interpretiert, entweder ob es eine Fehlermeldung ist oder bildliche Daten gekommen sind.
14:45
Dann werden die Daten in GeoJSON konvertiert und anschließend mal CSS darauf angewendet und am Ende dann in Leaflet dargestellt. Vor allem der Punkt 4 und 6 sind ein bisschen tricky, denn wenn man OSM-Daten in irgendwas brauchbares oder anzeigbares konvertieren möchte,
15:05
kommt man ziemlich schnell zum Problem, ist ein OSM-Way jetzt eine Linie oder ein Polygon? Dafür habe ich eine einfache Heuristik entwickelt, die sagt, ein Way ist ein Polygon, genau dann, wenn der Weg geschlossen ist,
15:22
wenn kein Area gleich No dranhängt und wenn bestimmte Tags vorhanden sind, das kann z.B. nur ein Key sein wie z.B. Building, dann ist es egal ob das Building gleich Yes heißt oder Building gleich House oder irgendwas. Oder spezielle Key-Value-Kombinationen wie z.B. Highway-Services, aber z.B. nicht Highway-Service.
15:45
Und dieser Zugang funktioniert meiner Meinung nach relativ gut und ist schon, auch wenn er sicher noch nicht perfekt ist, ist er aber schon ein Fortschritt gegenüber dem, was die Standard-OSM-Toolchain z.B. beim Mapnik-Fenderer macht.
16:09
Außerdem hat man bei der Anzeige von Daten oft das Problem, dass ich Small-Features-Dilemma nenne. Denn ein Point of Interest kann man in OSM z.B. immer als Punkt oder auch als Fläche oder eventuell sogar als Linie eintragen.
16:25
Wenn man jetzt diese Vector-Daten auf einer Karte darstellt, ist es im Normalfall so, dass die Punkte sich unabhängig immer gleich groß sind, die Fläche aber skaliert. Und im schlimmsten Fall, wie es bei Leaflet der Fall ist, irgendwann so klein wird, dass es gar nicht mehr angezeigt wird.
16:43
Das ist irgendwie unfair gegenüber den Flächen. Meine Lösung war, dass ich einen Leaflet-Plugin geschrieben habe, die beim Raustumeln, sobald ein flächiges Poi in der Größe kleiner wird als das Punkt-Poi wäre, dass ebenfalls als Punkt dargestellt wird, bzw. als Icon oder Kreis oder was auch immer gerade.
17:06
Aber gleich wie ein Punkt-Poi. Abschließend möchte ich noch ein bisschen auf die Zukunft, auf ein paar Ideen für die Zukunft von Overpass Turbo eingehen. Zuerst möchte ich mehr am ACSS implementieren. Was viele Leute schon vorgeschlagen haben oder gerne hätten, wären Textlabels.
17:25
Das geht momentan noch nicht. Außerdem wäre es nett, den Pop-up-Inhalt zu setzen oder den Hintergrund auch. Und Linecasings. Der zweite Schritt, was vielleicht eher mittelfristig erst kommen könnte,
17:45
wäre ein Pluginsystem. Dadurch könnte Overpass Turbo auf alternative Datenquellen zugreifen. Wäre nicht nur mehr auf die Overpass API beschränkt. Ich könnte mir zum Beispiel vorstellen, dass Overpass Turbo relativ gut geeignet wäre,
18:03
um lokale GeoJSON-Files darzustellen. Mehr Expo-Formate wäre auch ein Punkt. Oder benutzer-spezifische User-Interface-Erweiterungen. Eine solche Erweiterung, die ich schon als Prototyp implementiert habe,
18:24
wäre zum Beispiel Höhenprofile zu OSM-Base anzuzeigen. Diese basieren dann auf einem external service zusätzlich. Aber es könnte relativ praktisch sein, um Steigungen herauszufinden von Wegen und um diese dann zum Beispiel in die OSM-Datenbank einzutragen.
18:45
Oder wo Overpass Turbo auch relativ schnell an technische Grenzen stößt, ist die Anzahl von Points, die darstellbar sind. Das kommt auf dem Browser an, aber in der Regel sind es ein paar tausend, spätestens 10.000 Punkte technisch gesehen ins Schluss.
19:04
Und da könnte zum Beispiel eine geclusterte Anzeige von Features vorteilhaft sein. Und es gibt dafür auch schon Leaflet-Plugins. Und eventuell könnte man in Zukunft auch auf den Ausführung-Knopf verzichten.
19:24
Dass zum Beispiel die Karte, sobald sich die Karte verschiebt, automatisch die Query abgesendet wird. Oder sobald die Query geändert wird, dass er genüß aktualisiert wird. So, als Bonus noch zum Schluss ein paar Statistiken über die Benutzer von Overpass Turbo.
19:44
Seit dem Start Mitte Januar wurden circa 60.000 Queries ausgeführt. Und ich sehe im Schnitt rund 100 Unique Visitors pro Tag, am Wochenende ein bisschen weniger. Und das ist jetzt kein Wunder, aber die meisten Benutzer kommen aus Deutschland.
20:04
Ich danke für das Interesse und stelle für Fragen zur Verfügung. Ja, danke Martin. Hat jemand Fragen an Martin? Nicht so schüchtern.
20:25
Also vielleicht erstmal nicht so sehr eine Frage, sondern noch eine Anmerkung und auch ein großes Lob. Die Overpass Turbo ist sehr erfolgreich, dass sie auch in den Benutzerzahlen der Overpass API insgesamt sichtbar wird. Also das hat auch zu einem deutlichen Zuwachs der Nutzer der Overpass API gefällt. Insofern von mir auch nochmal der besondere Dank dafür.
20:51
Ja, ich habe mir gerade gedacht, wenn du vorhast, den Mapper die Daten zurückzugeben quasi, ist diese Abfragesprache im linken Fenster nicht für die meisten Mapper noch zu kompliziert?
21:03
Könnte man da nicht irgendwie ein etwas einfaches Formular anbieten? Zumindest für banale Abfragen wie Username oder sowas? Das stimmt und das hatte ich auch immer vor, da irgendwas in dieser Richtung zu machen. Ich habe zum Beispiel ein wizardbasiertes Query Building System.
21:24
Aber ich bin nicht gut genug für solche Sachen. Da bräuchte man wirklich jemanden, vielleicht auch jemanden, der sich noch nicht so gut mit so einer Materie auskennt, der selber weiß, wo Anfänger Schwierigkeiten haben, wo Hilfe nötig wäre.
21:40
Und das müsste jetzt nicht mit Overpass Turbo selbst implementiert werden. Man könnte auch einen eigenen Web-Service dafür starten, der eben Overpass Queries einfach herstellt.
22:01
Noch weitere Fragen? Anmerkungen? Kritik? Okay. Also noch als Antwort. Ich denke, die einfachste Möglichkeit eine Overpass Query zusammen zu basteln,
22:21
ist tatsächlich über Tag Info des Lenkradbuttons oben rechts zu benutzen und dann da halt weiterzumachen. Und sich das dann halt zusammen zu kopieren und so weiter. Okay, danke. Noch jemand mit einer Frage? Anmerkung? Ja, dann vielen Dank Martin. Und wenn fünf Minuten macht, der Roland weiter mit seinem Vortrag.