DE:Component overview

From OpenStreetMap Wiki
Jump to navigation Jump to search

Diese Seite soll Entwicklern einen technischen Überblick über das logische System und die Komponenten von OpenStreetMap geben.

Diagramm

OSM Components.svg

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.