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
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
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
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
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
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
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
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
9
Anwendungsbeispiel: Qualifizierung von Immobilien
16.06.2016
Grüngebiete
Autobahnen
Autobahn-
auffahrten
9 Ärzte
3 Schulen
15 Restaurants
italienisch
chinesisch
3 Supermärkte Öffnungszeiten
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
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
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
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
 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
15
Innovation Implemented.
16.06.2016
mgm technology partners GmbH
Frankfurter Ring 105a
80807 München
Tel.: +49 (89) 35 86 80-0
Fax: +49 (89) 35 86 80-288
http://www.mgm-tp.com
PragMünchen Berlin Hamburg Köln NürnbergGrenoble LeipzigDresdenBamberg Boswil

OpenStreetMap, Java Topology Suite und Solr - Java für zweidimensionale Geodaten

  • 1.
    München/HQ Bamberg BerlinBoswil 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  VieleFreiwillige (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 zweidimensionaleGeometrie  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 ApacheSolr?  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
  • 9.
    9 Anwendungsbeispiel: Qualifizierung vonImmobilien 16.06.2016 Grüngebiete Autobahnen Autobahn- auffahrten 9 Ärzte 3 Schulen 15 Restaurants italienisch chinesisch 3 Supermärkte Öffnungszeiten
  • 10.
    10 Ausgangspunkt: Geolokalisierte Meldungenvon 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 OpenData 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
  • 15.
    15 Innovation Implemented. 16.06.2016 mgm technologypartners GmbH Frankfurter Ring 105a 80807 München Tel.: +49 (89) 35 86 80-0 Fax: +49 (89) 35 86 80-288 http://www.mgm-tp.com PragMünchen Berlin Hamburg Köln NürnbergGrenoble LeipzigDresdenBamberg Boswil