OpenStreetMap Daten in Oracle Spatial - doag.org · OpenStreetMap Daten in Oracle Spatial DOAG, SIG...

Preview:

Citation preview

OpenStreetMap Daten in Oracle Spatial

DOAG, SIG Oracle Spatial Potsdam, 15. März 2011

Markus Lindner, CISS TDI

• OpenStreetMap• Modellierung• Verwendung in Oracle

Gliederung

• CISS ist Partner von Navteq und Tele Atlas• Gestiegenes Kunden-Interesse an

OpenStreetMap• Erste konkrete Anfrage:

OpenStreetMap -> GDF• Viele Projekte mit Navteq und Tele Atlas Daten

Warum überhaupt überhaupt OpenStreetMapOpenStreetMap ??

OpenStreetMap

• Open Source Projekt- OpenStreetMap hat das Ziel, freie

geographische Daten über Straßen, Eisenbahnen, Flüsse, Wälder, Häuser und alles andere, was gemeinhin auf Karten zu sehen ist, zu erfassen. Diese Daten stehen allen Benutzern lizenzkostenfrei zur Verfügung, um daraus zum Beispiel Straßen-, Wander- oder Fahrradkarten, Routenplaner oder andere wissenswerte Informationen zu erstellen.

Was ist OpenStreetMap ?

OpenStreetMap

Was ist OpenStreetMap ?

OpenStreetMap

• Verfügbarkeit- Visualisierung (Dienst) - Routing (Dienst) beta!- Export-Datei (XML-Format)

- Vorgefertigte Datenbestände tagesaktuell verfügbar

- Tools für den eigenen Export

OpenStreetMap

Was ist OpenStreetMap ?

• Export Format OSM Dateien (XML)- 3 unterschiedliche Features - Jedes Feature hat Attribute (id,timestamp,

user, bei nodes: lon, lat) - Ways bestehen aus Verweisen auf nodes- Relations bestehen aus member mit

unterschiedlichen Rollen (roles)- Zu jedem Feature können Tags weitere

Informationen enthalten

OpenStreetMap

Was ist OpenStreetMap ?

• Export Format OSM Dateien (XML)- Nodes (Koordinaten)

- Tags (Informationen zur Art des Knoten)

- Ways- Nodes (Verweise auf die Nodes)- Tags (Informationen zur Art der Way)

- Relations- Member (Way, Node, Relation)- Role - Tags (Informationen zur Art der Relation)

OpenStreetMap

Was ist OpenStreetMap ?

<node id="26372994" lat="50.7242657"lon="7.0639045" user="dachefte" uid="133419"visible="true" version="6" changeset="1896824"timestamp="2009-07-21T17:30:41Z"><tag k="highway" v="traffic_signals"/>

</node>

Node

OpenStreetMap

<way id="5942943" user="dahlberg" uid="17848" visible=" true" version="3"changeset="3176699" timestamp="2009-11-21T15:06:23Z" >

<nd ref="38942096"/><nd ref="48912671"/><nd ref="567916837"/><nd ref="48912664"/><nd ref="48912676"/><nd ref="567916829"/><nd ref="48912678"/><nd ref="31497769"/><tag k="highway" v="residential"/><tag k="name" v="Von-Weichs-Straße"/>

</way>

Ways

OpenStreetMap

<relation id="401701" user="EvanE" uid="184969"visible="true" version="1" changeset="3793978"timestamp="2010-02-04T21:57:14Z">

<member type="way" ref="15241577" role="outer"/><member type="way" ref="49530953" role="inner"/><tag k="type" v="multipolygon"/>

</relation>

Relations

OpenStreetMap

<tag k="type" v="multipolygon"/><tag k="highway" v="residential"/><tag k="name" v="Von-Weichs-Straße"/><tag k="footway:right.sloped_curb.end" v="0.03"/>

Tags

OpenStreetMap

• Highway example• Railway• Waterway• Landuse• Amenity• Leisure• Natural• Type• Name• ... (>20.000)

Tags

OpenStreetMap

• OpenStreetMap• Modellierung• Verwendung in Oracle

Gliederung

Warum Modellierung ?

• Import von XML in Oracle Spatial• Verschiedene Philosophien und Techniken

der Darstellung- OSM Renderer vs. MapViewer

• Unterschiedliche Nutzungen der Daten- Netzwerk Datenmodell- Schöne Karte

Was wollen wir erreichen ?

• Befüllen des Oracle Netzwerk Datenmodells

• Datengrundlage für eine schöne Karte• Import aller Informationen• Harmonisierung der Daten

NDM - Was wird benötigt ?

• Straßen (klassifiziert)• Kreuzungen• Knoten – Kanten – Modell• Richtung von Strassen• Partitionen

Karte – was wird benötigt ?

• Verschiedene Ebenen mit Flächen• Verschiedene Ebenen mit Linien• Verschiedene Ebenen mit Punkten

- MapViewer kann innerhalb einer Ebene unterschiedliche Symbole visualisieren

- GIS Systeme sind etwas beschränkter• Übersichtliche Datenstruktur für jede Ebene

- Verkürzt die Ladezeiten• Sammeltabellen für Tags

- Vollständigkeit

Einfacher (naiver) Ansatz

• Pro OSM Feature ���� Oracle Tabelle• Pro Tag ���� Spalte in Tabelle

3 Tabellen mit > 20.000 Spalten ???

Schnittstelle (Konfiguration)

<?xml version="1.0" encoding="UTF-8"?>

<cfg version="1.0">

<StandardTag name="highway"/>

<SubTag name="oneway"/>

<StandardTag name="railway"/>

<StandardTag name="leisure"/>

<StandardTag name="building"/>

<StandardTag name="type"/>

<StandardTag name="amenity"/>

<StandardTag name="boundary"/>

<StandardTag name="landuse"/>

<StandardTag name="waterway"/>

<StandardTag name="name"/>

</cfg>

Datenmodellierung

OSM Objekt

<way id="4339305" user="RoToRa" uid="9781" visible="tru e" version="18"changeset="4196252" timestamp="2010-03-21T20:23:13Z" >

<nd ref="26402294"/>

<nd ref="26474356"/>

<nd ref="588385279"/>

<nd ref="588385280"/>

<tag k="highway" v="tertiary"/>

<tag k="lanes" v="2"/>

<tag k="name" v="Graurheindorfer Straße"/>

<tag k="oneway" v="yes"/>

<tag k="created_by" v="Potlatch 0.10f"/>

</way>

Datenmodellierung

CITRA ObjekteFACDEF = WAY_____001

ATTSEG = WAY_____001

1 ID F(1) :4339305

4 USER C(32) :RoToRa

5 VISIBLE C(5) :true

6 CHANGESET C(32) :4196252

7 TIMESTAMP C(32) :2010-03-21T20:23:13Z

100 highway C(255) :tertiary

101 name C(255) :Graurheindorfer Straße

102 oneway C(255) :yes

77 EDGE_ID F(1) :11

77 EDGE_ID F(1) :12

77 EDGE_ID F(1) :13

PICTURE

LINE = WAY_____001

7.0948316 50.7464279

7.0948848 50.7466028

7.0948989 50.7466487

7.0947607 50.7467545

ENDFAC

FACDEF = WAYTAG__001

ATTSEG = WAYTAG__001

1 WAY_ID F(1) :4339305

2 TAG_NAME C(255) :created_by

3 TAG_VALUE C(255) :Potlatch 0.10f

PICTURE

ENDFAC

FACDEF = WAYTAG__001

ATTSEG = WAYTAG__001

1 WAY_ID F(1) :4339305

2 TAG_NAME C(255) :lanes

3 TAG_VALUE C(255) :2

PICTURE

ENDFAC

Datenmodellierung

• CITRA Schnittstelle• Problem: Ways und Nodes kein echtes Knoten-

Kantenmodell• Lösung: Schnittstelle erzeugt echte Edges für

(highway)-Ways

Schnittstelle

Datenmodellierung

Datenmodellierung

Datenmodellierung

Datenmodellierung

Datenmodellierung

Datenmodellierung

Datenmodellierung

OSM Objekt

<way id="4339305" user="RoToRa" uid="9781" visible="tru e" version="18"changeset="4196252" timestamp="2010-03-21T20:23:13Z" >

<nd ref="26402294"/>

<nd ref="26474356"/>

<nd ref="588385279"/>

<nd ref="588385280"/>

<tag k="highway" v="tertiary"/>

<tag k="lanes" v="2"/>

<tag k="name" v="Graurheindorfer Straße"/>

<tag k="oneway" v="yes"/>

<tag k="created_by" v="Potlatch 0.10f"/>

</way>

Datenmodellierung

CITRA ObjekteFACDEF = WAY_____001

ATTSEG = WAY_____001

1 ID F(1) :4339305

4 USER C(32) :RoToRa

5 VISIBLE C(5) :true

6 CHANGESET C(32) :4196252

7 TIMESTAMP C(32) :2010-03-21T20:23:13Z

100 highway C(255) :tertiary

101 name C(255) :Graurheindorfer Straße

102 oneway C(255) :yes

77 EDGE_ID F(1) :11

77 EDGE_ID F(1) :12

77 EDGE_ID F(1) :13

PICTURE

LINE = WAY_____001

7.0948316 50.7464279

7.0948848 50.7466028

7.0948989 50.7466487

7.0947607 50.7467545

ENDFAC

FACDEF = EDGE____002

ATTSEG = EDGE____002

1 ID F(1) :11

2 WAY_ID F(1) :4339305

3 FROM_NODE F(1) :26402294

4 TO_NODE F(1) :26474356

PICTURE

LINE = EDGE____002

7.0948316 50.7464279

7.0948848 50.7466028

ENDFAC

FACDEF = EDGE____002

ATTSEG = EDGE____002

1 ID F(1) :12

2 WAY_ID F(1) :4339305

3 FROM_NODE F(1) :26474356

4 TO_NODE F(1) :588385279

PICTURE

LINE = EDGE____002

7.0948848 50.7466028

7.0948989 50.7466487

ENDFAC

Datenmodellierung

• CITRA Schnittstelle• Kann OSM Exporte in Größenordnung 3-3,5 GB

(Berlin: 180 MB, England: 3.1 GB)• Variiert in Abhängigkeit Anzahl Nodes• Begrenzt durch Java VM und Hauptspeicher

• CITRA Namen sind momentan fix• Weitere Konfigurationsmöglichkeiten denkbar

Schnittstelle

Datenmodellierung

Die Konvertierung in 3 Schritten

CITRA

Modellierungswerkzeuge

Syntaktische Konvertierungund Klassifikation von Daten

Syntaktische Konvertierungund Konsistenzprüfung

Basierend auf dem CITRA-Format

Die Implementierung

CITRA

Quelle

Test

Analyse

Report Report

Ziel

Report Report

Geometrische Operationen

Modifizierung von Attributen

Aufwertung der Topologie

...

• Alphanumerische Daten

• Geometrie ...... z.B. Bearbeitung von Flächen

• Modifikation von Objekten

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA®- Modellierungswerkzeuge

CITRA Konzept

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

Uferstr. 15a

Uferstr.

15

a

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

NAYY 3x25 1987NAYY 3x25 2003

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Alphanumerische Daten

• Geometrie

• Modifikation von Objekten

• Bearbeitung von Flächen

• Bildung von Relationen

• Bildung von Topologien

• Analyse der CITRA-Datensätze

• Das offene CITRA-Format ermöglicht den Aufbau und d ie Integration individueller Lösungen

• Plausibilitätsprüfung

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Sachdaten- Umbenennung von Feldern- Aufbereitung von Inhalten- Generierung von Defaultwerten- Abbildung auf zulässige Werte- Aufteilen, Zusammenfügen von

Sachdaten - Umlautkonvertierung

• Geometrie- Umwandlung von graphischen Primitiven - Umrechnung von Referenzpunkten - Nachbildung von Zeichenmethoden - Erzeugung von Präsentationsgraphik

Uferstr. 15a

Uferstr.

15

a

Text A9f1..y Text

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Flächenbearbeitung- Überführung verschiedener Flächendatenmodelle - Flächenbildung unter verschiedenen

Voraussetzungen - Zuordnen von Repräsentanten- Zuordnung von Zentroiden zu den zugehörigen Flächen- Umsetzung von verschiedenen Repräsentationen von Inseln und Exklaven

• Herstellen von Beziehungen- Zusammenführen von Geometrie und Sachdaten eines Objekts - Beziehungen zwischen Objekten- Einfangen von Texten- Identifizieren von Textblöcken

NAYY 3x25 1987NAYY 3x25 2003

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Erzeugung von Topologie- Suche nach Overshoots- Finden von fehlenden Knoten- Generierung von Knoten- Herleitung von Knotentypen aus dem toplogischen Zusammenhang- Prüfen auf Konsistenz zu topologischen Regeln- Zusammensetzen von Liniensegmenten entsprechend topologischer Regeln

• Objekte modifizieren- Trennen- Verschmelzen- Vervielfältigen- Löschen- Umbenennen

CITRA Konzept

CITRA®- Modellierungswerkzeuge

• Analyse von CITRA -Dateien- Statistik- Generierung von Konfigurationsdateien- Visualisierung mit dem SVG-Viewer

• Plausibilitätsprüfungen- Wichtiger Beitrag zur Qualitätssicherung- Funktionalität zur automatischen Fehlerkorrektur

• Offenes Format ermöglicht Erstellung und Einbau von Individuallösungen

CITRA Konzept

CITRA®- Modellierungswerkzeuge

Beispiel CITRA Format

CITRA Konzept

FACDEF = BUILDING3507483.870 5397436.0103507483.870 5397436.010

ATTSEG = PUBLIC_BLDG1 TYPE C(3) :0152 BUILT_IN C(4) :186711 STR_CODE C(5) : 524912 NUMBER C(4) : 1416 ADDRESS C(33) :14, Mildenhall Road

PICTURELINE = BLDG_AREA

3507479.540 5397436.6903507481,220 5397437.0503507480.780 5397439.4603507489.590 5397441.1703507491.280 5397432.1003507480.690 5397430.0603507479.540 5397436.690

SYMB = CENTROIDANGLE = 281

3507483.870 5397436.010FTEXT = NUMBER

ANGLE = 281FLDID = 12

3507483.870 5397436.010TEXT = DESCRIPTION

3507487.230 5397434.050'Town Hall'ENDFAC

• Nodes werden einfach modelliert• Die Schnittstelle unterscheidet zwischen Nodes

ohne <Tag> und Nodes mit <Tag>• Nodes mit Tag sind POI• POI werden je nach Bedeutung des <Tag>

umbenannt• Nodes ohne Tag sind nur für NDM wichtig

Nodes

CITRA

• Ways können mehrere <Tags> haben• Beispiel: highway und railway• ���� Verdoppeln der Geometrie notwendig

Ways

CITRA

<way id="4365197" user="mike67" uid="49785" visible="tr ue" version="6"changeset="4044699" timestamp="2010-03-05T21:14:14Z" >

<nd ref="26402290"/> ....

<tag k="highway" v="secondary"/>

<tag k="name" v="Kölnstraße"/>

<tag k="oneway" v="yes"/>

<tag k="railway" v="tram"/>

<tag k="ref" v="L 300"/>

</way>

• Ways bilden Polylinien und Polygone • Bei Enklaven/Exklaven gibt es eine Relation mit

dem type multipolygon

<relation id="22522" user="DaBear" uid="31059" visible ="true"version="1" changeset="600786" timestamp="2008-07-26T 12:00:41Z">

<member type="way" ref="15241876" role="outer"/><member type="way" ref="25778555" role="inner"/><tag k="type" v="multipolygon"/>

</relation>

Ways

CITRA

• Zusammenfassen der Ways eines Multipolygons zu einem Objekt

• Aber: einzelne Ways eines Multipolygons können unterschiedliche Bedeutungen haben

• Der Typ des äußeren Rings gibt den Typ des gesamten Polygons vor

• Wenn ein innerer Ring einen anderen Typ hat, wird dieser dupliziert

Ways

CITRA

Ways (Fehler)

CITRA

Ways

CITRA

Ways (korrekt)

CITRA

• Modellieren Beziehungen zwischen Objekten, aber auch Objekte selbst

• Für Darstellung wichtige Relationen (Multipolygone)

• Informative Relationen (Route für S -Bahn-Linien)• Manöver (Abbiege-Verbote etc...)

Relationen

CITRA

• >20000 unterschiedliche <Tags>• „ungültige Namen“

<tag k="footway:right.incline" v="1.0%"/>

• Einheitlichkeit ? <tag k=„amenity" v=„school"/><tag k=„school" v=„yes"/>

Attribute

CITRA

• Open Street Map• Modellierung• Verwendung in Oracle

Gliederung

• AREAAMENITY• AREALANDUSE• AREALEISURE• AREAWATER• BUILDING• AREANATURE• TRAFFIC• OTHER_OBJECTS

Oracle Tabellen mit Ways(Areas)

Datenmodell

• STREETS• RAILWAY• BOUNDARY

Oracle Tabellen mit Ways(Polylines)

Datenmodell

• POI_RAILWAY• POI_TRAFFIC• POI_RESTRNT• POI_AMENITY• POI_PARKING• POI_WATER• POI_PETROL• POI_BANK• POI_NATURE• POI_LANDUSE• POI_LEISURE

Oracle Tabellen mit Nodes (Points)

Datenmodell

• RELATIONS• RESTRICTIONS• WAYTAGS• NODETAGS• RELTAGS

Oracle Tabellen ohne Geometrie

Datenmodell

• OSM_NODE$• OSM_LINK$• OSM_PATH$• OSM_PLINK$

Oracle Tabellen für Netzwerk-Datenmodell

Datenmodell

Netzwerk Datenmodell

• Spatial Netzwerk ohne LRS SDO_GEOMETRY• Spatial Netzwerk mit LRS SDO_GEOMETRY• Spatial Netzwerk mit SDO_TOPO_GEOMETRY• Logisches Netzwerk ohne Geometrie

Oracle

Netzwerk Datenmodell

• Benutzer/Schema anlegen• Anlegen der Datenstrukturen• Daten importieren• Metadaten erzeugen• Testen/Validieren

Oracle

• Partitionieren !• Objekte auf der Grenze

- Nodes Ok (Constraint)- Ways Ok (Edge Ids konfigurierbar)

• Directed oder Not-Directed

Netzwerk Datenmodell

Oracle

Anlegen der Datenstrukturen

• Verwendung von Oracle Funktionen zum erzeugen der Tabellen

• Erzeugen der Tabellen durch eigene Scripte

Oracle

Anlegen der Datenstrukturen

SDO_NET.CREATE_SDO_NETWORK(<name>,<Hierachie-Level>,<Directed>,<node with cost> );

--- anlegen der Netzwerk - TabellenEXEC SDO_NET.CREATE_SDO_NETWORK('OSM',9,True,FALSE) ;

--- eigene Spalten für ID aus OpenStreetMapALTER TABLE OSM_NODE$ ADD (OSM_ID NUMBER);ALTER TABLE OSM_LINK$ ADD (OSM_ID NUMBER);

--- Sequenz wird con CITRA verwendetcreate sequence LINK_SEQ;

Oracle

Daten importieren

• CITRA

Oracle

Metadaten

insert into USER_SDO_GEOM_METADATAvalues('OSM_NODE$', 'GEOMETRY',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT( 'X', -360, 360, 0.000001 ),MDSYS.SDO_DIM_ELEMENT( 'Y', -360, 360, 0.000001 ) ) ,4326 );

... OSM_LINK$, OSM_PATH$

Oracle

Validieren

SDO_NET.VALIDATE_NETWORK(<name>,<check_data>)

--- Validieren des Netzwerkesselect SDO_NET.VALIDATE_NETWORK('OSM','True') from dua l;

Oracle

Oracle

Karte

• Benutzer anlegen• Anlegen der Tabellen• Daten importieren• Metadaten erzeugen

Oracle

Anlegen der Tabellen

Oracle

Daten importieren

Oracle

Oracle

Das war‘s!

Haben Sie Fragen?

CISS TDI GmbHBarbarossastraße 36 •••• 53489 Sinzig

Tel.: +49 2642 97 80 0ciss@ciss.de •••• www.ciss.de

Die abgebildeten Daten wurden mit freundlicher Genehmigung von der KDZ Westfalen-Süd und den

Landesvermessungen NRW, RP zur Verfügung gestellt.

Recommended