Openseamap/DE:Seamap database

From OpenStreetMap Wiki
Jump to navigation Jump to search

OpenSeaMap.org ist ein Projekt von OpenStreetMap. Als Geo-Datenbasis wird die OSM-Datenbank verwendet, auf die über die Schnittstelle XAPI (alternativ direkt auf die API) zugegriffen wird. Nautische Daten haben in OSM den Namensraum "seamark:" zur eindeutigen Unterscheidung von "Land"-Daten.

Zusätzlich verwendet OpenSeaMap eine zentrale Meta-Datenbank zur Beschreibung der Datenstruktur (Schlüssel, Werte, Regeln, Hilfe-Texte), aus denen sich die Anwendungen bedienen und dadurch eine konsistente Verwendung der Variablen und der Begriffe sichern. Index-Tabellen unterstützen eine schnelle Suche.

Schlüssel- und Werte-Datenbank

Alle in der OSM-DB verwendeten "seamark"-Schlüssel und die dafür zulässigen Werte werden in einer Tabelle als DB-Beschreibung zentral gespeichert. Beschrieben werden:

  • für jeden Schlüssel und Wert der zugehörige Code nach IHO-S-57
  • jeder Bezeichner in den bereits übersetzten Sprachen
  • die Regeln für erforderliche/erlaubte Schlüssel und -Schlüsselkombinationen und die zulässigen Werte, Wertebereiche und Kombinationen

Dadurch können alle Anwendungen (Editor, Renderer, Router, Tools) einheitlich und konsistent dieselben Schlüssel und Werte verwenden. Alle Daten können in S-57 transformiert werden. Und in Zusammenarbeit mit der Übersetzungs-DB können alle Bezeichner in jeder Landessprache angeboten werden.

Übersetzungs-Datenbank

Die landessprachlichen Übersetzungen werden zentral gespeichert für:

  • Schlüssel
  • Werte
  • Bezeichner
  • Hilfe-Texte

Hafen-Datenbank

Für die schnelle Suche werden alle Häfen und Marinas in einer Hafen-Datenbank indiziert.

Variable Definition Typ Wertebereich Bemerkung
Name Name englisch, ohne diakritische Zeichen strg A..Z, a..z, Leerzeichen, -
Name_lokal Lokaler Name in lokaler Schrift strg UTF-8
Ort Ort englisch, ohne diakritische Zeichen strg A..Z, a..z, Leerzeichen, -
Land Land englisch, ohne diakritische Zeichen strg A..Z, a..z, Leerzeichen, -
Region Region englisch, ohne diakritische Zeichen strg A..Z, a..z, Leerzeichen, -
LOCODE ISO 3166-1 alpha-2 plus Ortskennzeichnung strg[5] A..Z [1]
LAT Breite in WGS-84 -90,0000 bis 90,0000°
LON Länge in WGS-84 -180,0000 bis 180,0000°
Kategorie Haupzweck strg Marina|Fischerhafen|... [2]
Grösse Grösse/Bedeutung ??? [3]
Teilhafen Haupt-/Teilhafen strg harbour_main/harbour_sub [4]

Alle Häfen und Marinas werden als klickbare Icons als weiterer Layer über die Grundkarte gelegt.
Kategorie, Grösse, Haupt-/Teihafen bestimmen die Anzeige auf verschiedenen Zoomleveln.

Im Popup erscheinen:

a) Hafenname
b) Link zu einer detaillierten Hafenbeschreibung
c) ausgewählte Hafendaten

Die ausgewählten Hafendaten (Ansteuerung, Schutz, Tiefe, etc) werden aus der OSM-DB bezogen. Siehe dazu die JOSM-Vorlage "Hafen" und den Namensraum "harbour". Die detaillierte Hafenbeschreibung wird aus einer externen DB bezogen. In der OpenSeaMap-Hafen-DB werden gespeichert: ein Index für die schnelle Suche, und ggf. ausgewählte Hafendaten für die Direktanzeige in den Popups.

Da der Zugriff auf die XAPI derzeit (7.09) nicht funktioniert, müssen wir die ausgewählten Hafendaten vorerst selbst in der Hafen-DB speichern. Für Offline-Anwendungen muss das Ganze ebenfalls nochmal überdacht werden, weil da ja alle Daten auf den Speicherchip müssen, auch die genaue Hafenbeschreibung.

Render-Regeln

Die verschiednenen Seezeichen müssen in den verschiednen Zoomstufen in der Karte unterschiedlich angezeigt werden. Damit die Regeln übersichtlich zu verwalten sind, sollen sie in einer DB zusammengefasst werden. Der Renderer kann sich dann die Information direkt aus der Tabelle holen.

Mapnik verwendet 18 Zoomstufen.

Datenschema

Basisdaten

Name Schlüssel Attribute
Hafen Hafen_ID Name, Name_national, Ort, Land, Region, LOCODE, LAT, LON
Bezeichner Bezeichner_ID Name, Beschreibung:de, Name:de, Name:en, Name:fr, etc.
Hilfetext Hilfetext_ID Überschrift:de, Text:de, Überschrift:en, Text:en, etc.
Formular Formular_ID Name, Beschreibung:de
Schlüssel Schlüssel_ID Name, Beschreibung:de
Wert Wert_ID Name, Wertebereich, Beschreibung:de
LOCODE LOCODE Land, Ort
Land ISO 3166-1 alpha-2 Land
Region Region_ID Region
Renderregel RR_ID Regel, Beschreibung:de

Beziehungen

Name Schlüssel Attribute
Formular - Bezeichner Formular_ID, Bezeichner_ID
Formular - Schlüssel Formular_ID, Schlüssel_ID
Formular - Hilfetext Formular_ID, Hilfetext_ID
Schlüssel - Wert Schlüssel_ID, Wert_ID Regel, Wertebereich
Land - Region Alpha-2, Region_ID
Rendern je Zoomstufe RR-ID, ??-ID z1, z2, bis z18