DE:Component overview
Diese Seite soll Entwicklern einen technischen Überblick über das logische System und die Komponenten von OpenStreetMap geben.
Diagramm
Datenbank
Die Datenbank enthält alle Kartendaten in Form von Knoten (Punkten), Wegen und Relationen. Siehe das Datenbank-Schema(en).
Protokoll
Das OSM-Protokoll (auch bekannt als "die API") ist ein REST Web-Service-Interface für Lese- und Schreibzugriffe auf die Datenbank. Andere OSM-Komponenten greifen über dieses Interface auf die Datenbank zu. Es ist auch für externe Zugriffe aus dem Internet verfügbar.
Die Implementierung des Protokolls ist Teil der selben Ruby on Rails-Anwendung, die auch das Frontend und die Webseite implementiert.
OSM Front-End
Die Front-End-Webseite ist in Ruby on Rails (vgl. Rails Port(en)) geschrieben. Es bietet Nutzern eine Login-Möglichkeit unter Verwendung einer direkten Verbindung zur Benutzer-Datenbank (nicht im obigen Diagramm dargestellt). Der wichtigste Zweck der Webseite jedoch ist die Anzeige der Slippy Map (scrollbare Karte - Reiter Ansicht), sowie für authentifizierte Nutzer den Online-Editor iD (Reiter Bearbeiten).
Slippy Map
- Hauptartikel: Slippy Map
Dies ist die Komponente, die die Karten anzeigt! Es handelt sich um ein AJAX-Interface mit der Möglichkeit, zu zoomen und den Kartenausschnitt zu verschieben ("flottes" ["slippy"] Verschieben des Kartenausschnitts per Maus).
iD
iD ist der Editor, der standardmäßig mit Bearbeiten verknüpft ist. Auch hierfür hat die Rails-Anwendung einen View. iD ist in Javascript geschrieben. Es kann in andere Webseiten eingebunden werden, um eine konfigurierbare Bearbeitungsmöglichkeit zu geben. Andere Editoren sind über das Drop-down-Menü erreichbar.
Kartenkacheln (en. "tiles") und Rendern der Kacheln
In einem fortlaufenden Prozess werden über die API Kartendaten empfangen und Kartengrafiken als Rastergrafiken, die man als Kacheln bezeichnet, gerendert. Viele neue Kacheln müssen gerendert werden, um eine volle (globale) Abdeckung zu erreichen, aber auch Aktualisierungen der zugrundeliegenden Kartendaten haben zur Folge, dass bereits vorhandene Kacheln neu gerendert werden müssen.
Mapnik
Mapnik ist ein Rendering-System, das die Darstellung für die Default-Ansicht (voreingestellte Ansicht) der Slippy Map liefert. Der Rendering-Prozess läuft auf dem Server 'tile' und Mapnik-Kachelgrafiken werden von dieser Maschine geliefert. Der Renderer erhält die Daten von einer Postgres-Datenbank(en). Diese Daten liegen dort in einem Mapnik-tauglichen Format vor. Dieses Format ist verschieden von dem der zentralen OpenStreetMap-Datenbank. Die Mapnik-Datenbank wird mit minütlichen Änderungen(en) aktualisiert, die mittels osm2pgsql verarbeitet werden.
Renderer
Wie bereits erwähnt, nutzen wir die Rendering-Software Mapnik, um Rastergrafiken für die Kartenkacheln(en) zu erstellen. Renderer können auch auf einer Ad-hoc-Basis genutzt werden, um Kartengrafiken aus unseren Daten zu generieren. Es gibt unbegrenzte Möglichkeiten, neue Wege zu entwickeln, um unsere Daten zu rendern.
Editoren
Neben dem Reiter Bearbeiten auf unserer Webseite (iD) gibt es andere Werkzeuge, sowohl Offline-Anwendungen als auch andere Webseiten, die es ermöglichen, die OSM-Daten über die API zu bearbeiten. Es gibt eine Übersicht über gängige Editoren.
Das Protokoll erlaubt die Authentifizierung mittels OAuth. Dies bedeutet, dass der Benutzer der Anwendung einzelne Berechtigungen gewährt, ohne jedoch sein Passwort nennen zu müssen. Editoren gibt es in Form von Onlineanwendungen, klassischen Computerprogrammen oder als App für unterwegs.