Mir stellt sich immer wieder die Frage: Wo fehlen bei OpenStreetMap noch Daten im Vergleich zu Google Maps? Da es die Rohdaten von Google nicht gibt ist ein direkter Vergleich sehr schwierig.
Als Ausweg habe ich mir eine pfiffige Alternative ausgedacht. Warum nicht einfach visuell die Karten vergleichen? Ich wende dabei einen kleinen Trick an. Ich verstecke von den Google Maps alle Daten die es schon in OpenStreetMap gibt.
Wie funktioniert es im Detail?
Das Ziel soll sein nur die wirklich groben Fehler zu finden. Ich konzentriere mich dabei auf Features die sich auch aus der Ferne einfügen lassen. Ganz konkret also Hauptstraßen und Gewässer. Diese lassen sich auch ohne Ortskenntnis ganz gut von Luftbildern abmalen ohne zu viele Fehler zu erzeugen. Wie kann man also die Karte auf die Anzeige dieser Hauptkriterien reduzieren?
Google Maps Styling
Mit der Google Maps API v3 bietet Google die Möglichkeit das Design der Karte in begrenztem Maß zu verändern. Ich verwende die API dazu um auf der Google Basiskarte alle Features verschwinden zu lassen die beim Vergleich eher stören würden. Im Ergebnis besteht die Google Karte dann nur noch aus Straßen und Gewässern.
Um den Vergleich der Karte zu erleichtern passe ich zusätzlich die Farbgebung der Straßen an so dass diese etwas auffälliger sind. Wollten wir nicht schon immer eine Karte haben auf der die Straßen in knalligem Rot hervorstechen?
Der OpenStreetMap Layer
Im OpenStreetMap Layer verdecke ich die Features der Basiskarte wenn es in OpenStreetMap ein passendes Feature gibt. Das „passend“ muss man dabei so verstehen, dass sowohl das Tagging passen muss als auch die Geometrie zumindest näherungsweise gleich ist.
In einer gut gemappten Gegend würden nun sämtliche Features ausgeblendet. Übrig bliebe eine graue Fläche. Recht schwierig sich auf so einer Karte zurechtzufinden. Daher zeichne ich in einem zweiten Durchgang noch einige Grenzen und Namen von Städten zur Orientierung ein.
Wie sieht das in der Praxis aus? Wo fehlen bei OpenStreetMap noch Daten?
Der folgende Screenshot zeit ein Beispiel in Asien. Man erkennt ganz gut, dass die Abdeckung von OSM bereits viele Straßen beinhaltet die aus der Google Basiskarte ausgeblendet werden. Das sind die ganzen grauen Bereiche. Dennoch gibt es einige Straßen die bei Google gelistet sind und nicht durch OSM Daten verdeckt werden. Durch die Farbgebung sind vor allem die fehlenden Straßen sehr deutlich zu erkennen.
Das sind Kandidaten für OSM. Für diese muss nun geprüft werden ob sie eventuell schon vorhanden sind aber nicht korrekt getaggt. Falls sie komplett in OSM fehlen bräuchte man für OSM passende Luftbilder von Bing oder Mapbox. GPS Spuren könnten eventuell auch schon bei OSM vorhanden sein.
Der Weg in den Editor
Hat man einen Bereich auf der Karte gefunden der genauer überprüft werden soll muss dieser in einen der Editoren zur Bearbeitung geladen werden. Dafür gibt es auf der linken Seite einen Button. Er zeigt den Status der RemoteControl Verbindung zu beispielsweise JOSM an. Ist der Button ausgegraut kann keine Verbindung hergestellt werden. Entweder läuft JOSM noch nicht, oder das RemoteControl wurde in den Einstellungen von JOSM deaktiviert. In seltenen Fällen könnte auch eine Firewall den Zugriff blockieren. Ein Klick auf den ausgegrauten Button startet die Überprüfung neu.
Ist der Button aktiv dargestellt kann damit der aktuelle Kartenausschnitt im Editor geladen werden. Am besten zoomt man möglichst weit hinein um die Datenmenge übersichtlich zu halten.
Wer anstelle von JOSM lieber Potlatch 2 oder iD verwendet klickt auf den entsprechenden Link unterhalb des RemoteControl Buttons und öffnet die Seite dann in einem der Web-Editoren.
Das weitere Vorgehen hängt dann vom konkreten Fall ab. Wenn es an der entsprechenden Stelle in den Daten schon einen Weg gibt müsste das Tagging geprüft werden. Wenn die Daten fehlen ist der nächste Schritt zu prüfen ob es in der Gegend geeignete Luftbilder gibt die zum Abzeichnen verwendet werden können.
Was kann schiefgehen?
Es kann sein, dass eine Straße in Google fehlerhaft ist und OSM die besseren Daten hat. Das lässt sich bei einem optischen Vergleich nicht unterscheiden. Hier muss der Mapper leider selbst entscheiden. Ein gutes Indiz für bessere Daten bei OSM ist wenn der Weg noch andere Tags enthält die darauf schließen lassen dass ein Mapper vor Ort die Daten erfasst hat. Gegebenenfalls lässt sich auch über das Nachrichtensystem in OSM beim Mapper nachfragen was der Mapper von der Situation hält.
Da nur Hauptstraßen ausgewertet werden wird auch eine Straße angezeigt für die es in OpenStreetMap zum Beispiel eine als highway=residential getaggte Straße gibt. Auch hier ist aus der Ferne nicht entscheidbar welche Daten wirklich korrekt sind.
Andere Tagging-Probleme sind einfacher zu entscheiden. Wenn beispielsweise eine kilometerlange Straße die mehrere Dörfer verbindet als highway=track getaggt ist dann handelt es sich eher um ein Taggingproblem bei OSM.
Probleme bei der Anzeige
Manchmal kommt es auch bei der Anzeige zu Grafikfehlern. Wenn man die Karte schnell mit der Maus verschiebt bewegen sich die beiden Layer (Google und OSM) nicht deckungsgleich. Dann sieht man das ganze Straßennetz von Google.
Beim Verschieben kann es auch passieren dass die Straßen nicht komplett verdeckt werden und man einen Farbsaum sieht. Bewegt man die Karte nochmal ein Stück passt es wieder. Ich denke das kommt von der Art und Weise wie die Browser mit den Bitmaps umgehen.
Ich will das ausprobieren. Wo ist die Karte?
Die Karte findet sich unter http://compare.osm-tools.org/. Um Daten bei OpenStreetMap hochladen zu können benötigt man dort einen Account.
Wie geht es weiter? Gibt es noch mehr zu tun?
Die Karte mit dem Vergleich bietet eine weltweite Abdeckung. Die Daten aus OpenStreetMap werden stündlich aktualisiert. Die Karte zeigt damit immer den aktuellen Stand der Daten an. Wem das noch nicht reicht, der kann in Südost-Asien auch noch nach Hauptstraßen suchen die im Nichts enden. In einem eigenen Artikel habe ich schon vor einiger Zeit darüber geschrieben.
Erst einmal danke für das Tool. Die Idee ist ausgesprochen clever.
Allerdings gibt es direkt vor meiner Haustür einen Fall
http://compare.osm-tools.org/?zoom=15&lat=50.81355&lon=7.15477&layers=BT00F
bei dem die Straßen aus Google (obere Linie: Ravensberger Weg, Kronenstraße, Annonisweg, Schloßstraße, untere Linie: Bahnstraße, Mendener Straße) in OSM vorhanden sind. Sie sind in OSM korrekt als Wohnstraßen eingezeichnet, während sie bei Google fälschlicherweise als Hauptstraßen eingezeichnet sind. Prüft das Tool bis runter gegen „highway=residential“ oder nur bis „=tertiary“?
wie beschreiben werte ich nur Hauptstraßen aus. Das ist runter bis zu highway=unclassified. Ich vermute, dass in Deutschland die Hauptstraßen ziemlich komplett sind. Da dürften die meisten angezeigten Abweichungen auf Unterschiede im Tagging zurückzuführen sein. In Asien sieht es deutlich anders aus. Da fehlen die Straßen meistens wirklich.
Ich hatte aber auch dort schon Stellen bei denen die Straße von OSM genau dem Luftbild folgt und die Straße von Google deutlich daneben gezeichnet war.
Bestimmt liese sich da etwas bauen mit dem solche „false-positives“ gekennzeichnet werden könnten, z.B. indem man das in der Karte von Hand drübermalt. Aber das dürfte den ganzen Aufwand nicht wert sein.
Pingback: OpenStreetMap waterbody completeness | Imagico.de