OpenStreetMap, Java Topology Suite und Solr - Java für zweidimensionale Geodaten
1. München/HQ Bamberg Berlin Boswil Dresden Grenoble Hamburg Köln Leipzig Nürnberg Prag
OpenStreetMap, Java Topology Suite und Solr
Java für zweidimensionale Geodaten
Dr. Christian Winkler <christian.winkler@mgm-tp.com>
mgm technology partners GmbH
16.06.2016
2. 2
Inhalt
16.06.2016
1. Datenlieferant: OpenStreetMap
2. Darstellung: Datenformate für (zweidimensionale) Geodaten
3. Verarbeitung der Geodaten: Java Topology Suite und Datenstrukturen
4. Suche und Aggregation von Geodaten: Apache Solr
5. Anwendungsbeispiele
6. Zusammenfassung
3. 3
Großes Community-Projekt
Viele Freiwillige (2,3 Millionen)
Hohe Datenqualität (ständige Aktualisierung!)
Koordinaten: WGS-84 (wie GPS)
Einige Kennzahlen
3.027.449.018 Nodes (Punkte)
307.744.408 Ways (Straßen, Leitungen etc.)
Viele Gigabyte (44 GB xml.bz2, 29 GB ProtoBuf)
Detaillierung bis auf Häuserkonturen
Verwendungsbeispiele
Karten auf Handys (Freizeit, Geocaching)
Karten für Navigationssysteme
Günstiger als kommerzielle Anbieter
Datenqualifizierung und Statistik
OpenStreetMap – Basisdaten
16.06.2016
4. 4
Punkte (nulldimensional)
Restaurants, Ärzte, Supermärkte
Geschäfte und Toiletten
Aber auch Hydranten (!)
Linien (eindimensional)
Straßen
Stromleitungen
Gebiete (zweidimensional)
Gewässer, Grüngebiete, Wälder etc.
„Unsichtbare“ Gebiete
wie Stadtgrenzen usw.
OpenStreetMap – weitere enthaltene Daten
16.06.2016
5. 5
Well-known text (WKT)
Punkte, Linien
Polygone, Multipolygone
Umlaufsinn (Löcher!)
OpenStreetMap
Spezielle interne Darstellung der Daten
Nodes und Referenzen auf Nodes
Transformation erforderlich
Nicht ganz einfach wegen Datenvolumen
Key-Value-Datenbank wie RocksDB
Node Way Relation
Datenformate für (zweidimensionale) Geodaten
16.06.2016
POINT, LINESTRING POLYGON MULTIPOLYGON
6. 6
API für zweidimensionale Geometrie
Schnell, reines Java, Open Source (LGPL)
Standardkonform
Koordinaten
WGS-84 (Standard-Ellipsoid)
Berechnung von Winkeln auf der Erde
Umwandlung aus WKT
Relationen
Enthält
Schneidet
Operationen
Schnitt- und Vereinigungsmenge
(Symmetrische) Differenz
Java Topology Suite – Einführung
16.06.2016
7. 7
Eigenschaften von Objekten
Zentrum, Bounding Box, konvexe Hülle
Abstände zwischen Geometrien
Beispiel für Fragestellungen/Operationen
Verläuft eine Straße durch den Wald?
Überschneidung von Stadtvierteln mit Zoo
Fährt ein Fahrzeug auf einer Straße
Auswertungen und Veränderungen
Vereinfachung (Douglas-Peucker)
Voronoi ( Flughäfen)
Aber: Wie finde ich die entsprechenden Objekte aus OSM?
Java Topology Suite - Anwendungen
16.06.2016
8. 8
Was ist Apache Solr?
Suchmaschine mit Schema
Oft für Volltextsuche,
aber auch sehr gut für analytische Suchen geeignet
Integration von zweidimensionalen Geometrien
zur Indizierung und Suche
Facettierung
Wie werden OSM-Daten in Apache Solr übernommen?
Definition eines schema.xml
Indizierung der Nodes
Indizierung von Wegen und Gebieten
Indizierung von Relationen
Suche in OpenStreetMap mit Apache Solr
16.06.2016
DDD
DDD
Typ
OSM
einlesen
Node Way
Rela-
tion
Solr-
Eingabedokumente
10. 10
Ausgangspunkt: Geolokalisierte Meldungen von Verkehrsschildern
Mit Fehlern und Ungenauigkeiten
Entfernung und Geschwindigkeit
Rückrechnung der Position
Indizierung in Solr
Aggregation
(unüberwachtes Lernen)
Fahrtrichtung berücksichtigen
Anwendungsbeispiel: Crowdsourcing für bessere Straßenkarten
Schritt 1: Persistierung und Clustering
16.06.2016
11. 11
Qualifizierung der Clusterinformationen
Mit Schild und Richtung
Suche in OSM-Solr
Kandidaten für Links
Mapmatching gelernter Positionen
Straße in Umgebung suchen (JTS)
Buffering, Richtung, Fahrtrichtung
Noch besser: Trace
Anwendungsbeispiel: Crowdsourcing für bessere Straßenkarten
Schritt 2: Mapmatching
16.06.2016
12. 12
Integration in Karte
Vorwärts- und Rückwärts-propagation
Domänenwissen: Verkehrsregeln
Iteration
Weitere Schilder
Wissen aufbauen
Möglicherweise müssen Links
aufgeteilt werden
(pro Link nur ein Limit)
Ergebnis
Verbesserte Kartenqualität
Anwendungsbeispiel: Crowdsourcing für bessere Straßenkarten
Schritt 3: Propagation und Ergebnis
16.06.2016
13. 13
OpenStreetMap liefert Open Data für geografische Informationen
Vielseitig verwendbar
Sehr aktuell
Sehr genau
Indizierung mit Apache Solr für globale Suche
Identifikation von Georegionen
Viele Operationen möglich
Schnell, auch für andere Geodaten
Nutzung der Java Topology Suite
Für schwierige, lokale Fragestellungen
Unterschiedliche Algorithmen
MapMatching, Krümmungsradien etc.
Starkes Gespann: OpenStreetMap, Apache Solr und Java Topology Suite
16.06.2016
14. 14
OpenStreetMap: http://openstreetmap.org
WKT: https://en.wikipedia.org/wiki/Well-known_text
JTS: http://www.vividsolutions.com/jts/JTSHome.htm
WGS-84: https://de.wikipedia.org/wiki/World_Geodetic_System_1984
Douglas-Peucker:
https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm
Voronoi-Diagramm für Flughäfen: https://www.jasondavies.com/maps/voronoi/airports/
Apache Solr: http://lucene.apache.org/solr/
Sensordaten und Optimierung von Straßenkarten: http://www.bitkom-bigdata.de/programm/2015-
02-25/exploration-von-geospatialen-automotive-daten
Genauere technische Erklärungen zur Transformation von OSM in Apache Solr:
http://blog.mgm-tp.com/2013/08/solr-openstreetmap/
Referenzen
16.06.2016