DE:Develop
OpenStreetMap bedeutet nicht nur „Open Data“, sondern auch Open Source. Unterstützung wird gerne gesehen!
Es gibt zwei grundlegende Wege, zu OpenStreetMap beizutragen:
- Entwicklung von OpenStreetMap
- Dies beinhaltet die Webseite OpenStreetMap.org und damit verbundene Dienste. Das wird im Folgenden auf dieser Seite beschrieben.
- Benutzung von OpenStreetMap
- Hier geht es um die Verwendung der Daten und der Dienstleistungen von OpenStreetMap. In Verbindung mit Software und von Externen bereitgestellten Diensten können neue Systeme oder Anwendungen erstellt werden.
Entwicklung von OpenStreetMap
|
Benutzung von OpenStreetMap
|
Kontaktaufnahme
Für Fragen, Ideen oder Austausch mit anderen Entwicklern kann die Entwicklergemeinschaft über folgende Kontaktmöglichkeiten erreicht werden:
- IRC Echtzeitchat
- Kanal
#osm-dev
des OFTC-Netzwerkes
- Kanal
- Mailinglisten
Technischer Aufbau
- Hauptartikel: Component overview(en)
Der Code von openstreetmap.org setzt sich zusammen aus unabhängigen Teilen, die gemeinsam eine Programmierschnittstelle, eine verschiebbare Karte und weitere Funktionalitäten bereitstellen.
Die Seiten von OSM und die grundlegende Programmierschnittstelle stammen vom Rails Port(en), einer Ruby on Rails-Anwendung. Die geografischen Daten ("the planet" genannt) werden in einer PostgreSQL-Datenbank(en) mit PostGIS(en) verwaltet und mittels dem Programm Mapnik in Bilder (Karten) umgesetzt. Die Ansicht der Webseite mit der verschiebbaren Karte wird mit Leaflet realisiert.
Intern werden Osm2pgsql und Osmosis verwendet, um OSM XML für PostGIS(en) nutzbar zu machen. Die Daten stammen von Planet.osm (einem Datenbankabzug). Da die Programme auch mit anderen Datenquellen arbeiten können, können sie auch für eigene Projekte genutzt werden.
Die Benutzer können, sofern angemeldet, die Daten mit Programmen, wie iD, Potlatch 3 oder JOSM bearbeiten.
Hintergrund
Es gibt viele Details zur Datenspeicherung und -modifizierung in OpenStreetMap, die wichtig zu verstehen sind, damit das eigene Projekt funktioniert. Interessant sind beispielsweise das XML-Schema(en), Datentypen und das Herunterladen von Daten, je nach Ausrichtung des Projekts und der Interessen.
Details zur technischen Infrastruktur findet sich auf der Seite Servers(en). Daneben gibt es noch die Dokumentation der aktuellen Schnittstelle(en) sowie Entwicklungs- und Testschnittstellen.
Etwas beitragen
Viele Projekte von OpenStreetMap nutzen Git (https://github.com/openstreetmap/ oder https://github.com/osmlab). Daher ist es einfach möglich, mit einer eigenen Abspaltung, „Fork“ genannt, Änderungen beizutragen (GitHub-Hilfe "Fork a repo"(en), Anleitung im Blog(en)).
Für größere Änderungen und entsprechende Tests steht der Dev-Server(en) zur Verfügung.
Hauptprojekte
OSM-Webseite (Ruby)
Hier geht es um die Benutzeroberfläche und die Programmierschnittstelle. Unter Rails port(en) gibt es viele nützliche Informationen zum Einstieg. Unterstützung bei der Benutzeroberfläche erwünscht, auf Rails port/UI(en) gibt es einen Einstieg. Neue Nutzer können auch Pull-Requests überprüfen als Übung zum Aufsetzen des Rails Port. Sonst sind Übersetzungen hilfreich.
Bei Betriebsproblemen des Servers können die Adminstratoren kontaktiert(en) werden.
Suche und Geocoding mit Nominatim
Desktop Karteneditor JOSM (Java)
JOSM ist der meistgenutzte und umfangreichste Karteneditor von OpenStreetMap.
Online-Editor iD (JavaScript)
Dies ist ein online Editor für OpenStreetMap. Die Benutzer können die Entwicklung unterstützen, indem sie die Funktionen testen und Fehler melden. Alternativ gibt es auch Fehler, die von neuen Softwareentwicklern gelöst werden können.
- Code GitHub
- Fehlermeldungen GitHub
Kartendarstellung auf der Webseite
- Hauptartikel: Standard tile layer(de)
- Code GitHub
- Fehlermeldungen GitHub
Andere Kartendarstellungen und -stile werden getrennt verwaltet. Informationen hierzu finden sich auf deren Wikiseiten (Übersicht(en)) oder in den Kontaktangaben.
Online-Editor Potlatch 3 (Adobe AIR)
Potlatch 3 ist ein Desktop-Editor.
- Code GitHub
- Übersetzungen
Datenverarbeitung mit der Allzweckwaffe Osmium (C++)
Osmium (auch bekannt als Libosmium) ist eine allgemeine Softwarebibliothek zur Verarbeitung von OpenStreetMap-Daten. Sie ist die Grundlage für weitere Projekte wie Osm2pgsql.
- Dokumentation(en)
- Code und Fehlermeldungen GitHub
Daneben gibt es noch „Osmium Tool“ als Kommandozeilenprogramm zum Konvertieren von OSM-Datenformaten, Inspizieren von Dateien, Zusammenführen von Dateien und dem Erstellen von geografischen oder thematischen Ausschnitten.
- Dokumentation(en)
- Code und Fehlermeldungen GitHub
Mit Pyosmium(en) gibt es ein Programm zur Einbindung in Python, welches Datenauszüge "Planet Dumps" aktuell halten kann.
Datenverarbeitung mit Osmosis (Java)
Osmosis ist ein vielseitiges Werkzeug zur Verarbeitung von OpenStreetMap-Daten. Beiträge zur Dokumentation und Testläufe sind besonders willkommen.
- Code GitHub
- Fehlermeldungen
Datenimport für Rendering und Geocoding mit osm2pgsql (C)
osm2pgsql ist ein Programm für das Importieren von XML-Dateien in PostGIS-Datenbanken(en). Beiträge zur Dokumentation und Testläufe sind besonders willkommen.
Verschiebbare Karten mit Leaflet (JavaScript)
Dieses Programm stellt die Benutzeroberfläche als verschiebbare Karte dar. Mit Javascript whizzes können die Webseiten noch schneller gemacht werden.
- Projektseite
- Code GitHub
- Fehlermeldungen GitHub
Kartendarstellung mit Mapnik (C++)
Das ist der Hintergrunddienst für die Umsetzung von Kartendaten in Kartendarstellungen.
- Projektseite(en)
- Code GitHub
- Fehlermeldungen GitHub
Kartenerstellung mit Tirex (C++ und Perl)
- ursprünglicher Code der Geofabrik GitHub
- Abspaltung für OSM GitHub
- Fehlermeldungen auf GitHub
Siehe auch Tirex/Development(en) und Tirex/Internals(en)