Openseamap/DE:Seamap database
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 |