DE:Rendering
Das Rendern einer Karte bedeutet, aus rohen Geodaten eine fertige Karte zu erstellen. Erstellt werden Rasterbilder oder Raster-Kacheln, es können aber auch Karten in Vektor-basierten Formaten erzeugt werden. "3D-Rendern" ist eine weitere Variante. Karten in verschiedenen Stilen oder Hervorhebung von speziellen Interessen erstellen zu können, ist sehr interessant. Softwareentwickler in und um die Gemeinschaft von OpenStreetMap haben ein großes Angebot an Programmen geschaffen, um die OpenStreetMap-Daten zu rendern. Die Daten können auch in andere Datenformate umgewandelt werden, um von verschiedenen Render-Programmen verwendet werden zu können.
Rendern auf OpenStreetMap-Servern
Die besten Beispiele von gerenderten OSM-Daten sind auf der Openstreetmap-Hauptseite zu finden. Klicke auf die Schaltfläche Ebenen (oben rechts, viertes Symbol von oben), um zwischen den verschiedene Ansichten zu hin- und herzuschalten. Dort gibt es mehrere Ansichten von Mapnik einschließlich der Standard-Ansicht. Um mehr über die Infrastruktur von Renderern und Anzeigen der Kachelkartenstiel zu erfahren, siehe Komponenten. Über die Schaltfläche Legende (kleines i oben rechts, fünftes Symbol von oben)
Es gibt eine nahezu grenzenlose Flexibilität in Sachen Rendern. Der größte Teil der Render-Software unterstützt eine Art von stylesheet, um Dinge wie Farbe, Linienbreiten, Textorientierung, Icons für Orte von Interesse und viele subtile visuelle Faktoren zu beeinflussen.
Server und Kommandozeilentools
Name | Ziel Plattformen | Ziel Sprachen | Lizenz | Bemerkungen |
---|---|---|---|---|
AlaCarte | Windows, Linux | N/A | AGPL | |
Kartograph | plattformunabhängig | Python | AGPL | Python framework zum Erzeugen von SVG Karten |
Kothic | plattformunabhängig | Python | unbekannt | eine MapCSS/0.2 Python Rendering-Engine. |
LunaRender | Windows | Lua | MIT | XML2SVG Renderer |
Mapnik | Windows, macOS, Linux | C++, JavaScript, Python, Ruby, Java | LGPL | Benötigt PostgreSQL und verschiedenen C++-Bibliotheken. Es wurde auf hohe Geschwindigkeit hin optimiert und eignet sich gut für die Kachel-Generierung auf Hochleistungsservern. Mapnik ist aber nicht besonders einfach einzurichten. |
MapOSMatic | plattformunabhängig | Python | AGPLv3 | kann Karten mit Straßennetz und -verzeichnis. Geschrieben in Python/Django + Mapnik |
node-mapbox-gl-native | Node.js | JavaScript | BSD | Node.js Paket zum Rendern von Mapbox Vektor Kacheln mit OpenGL |
osmCache | Java EE | Java | proprietär | Ein Java EE-Servlet zum Steuern des Renderns und erneuten Renderns von Kacheln mit Mapnik. |
Smrender | plattformunabhängig | C | GPLv3 | Eine in C geschriebene Regelbasierte Rendering-Engine |
TileServer GL | Plattformunabhängig | BSD | Kachelserver für Raster und Vektor Kacheln. | |
TileSweep | unbekannt | C, JSX | unbekannt | Kachelserver mit Vorrendern mit Hilfe von libmapnik. |
Clientseitige GUI-Anwendungen
Name | Ziel Platform | Lizenz | Bemerkungen |
---|---|---|---|
Hardware accelerated real-time rendering | .Net | Proprietär | benutzt Grafikkarten zum Rendern von Bildern in Echtzeit, statt vorgerenderte Kacheln anzuzeigen |
Kendzi3d | Java SE | BSD | Plugin für JOSM. Erlaubt es, die editierten OSM-Daten in 3D anzusehen |
Kosmtik | Node.js | WTFPL | CartoCSS Stilentwicklungstool (Stilvorschau) basierend auf Mapnik. |
Maperitive | Windows, macOS, Linux | Proprietär | Desktop-Rendering-Anwendungist die aus lokalen Dateien (.osm, .osm.bz2 und GPX) , mit Rendering-Regeln aus einer Textdatei arbeitet. Erzeugt BMP-, PNG- und SVG-Ausgabe. Nicht für Hochleistungs-Rendering oder große Datenmengen konzipiert, aber einfach einzurichten und flexibel und eine gute Option für einmaliges Rendering (z. B. eine Karte Ihrer Stadt). Es hat auch einen Kachelgenerator, Schummerung, Höhenschattierung, und viele andere Funktionen. Läuft unter Windows, Linux, Mac. Geschrieben in C # |
OSM2World | Java SE | LGPL | Java-Tool, welches aus OSM-Daten detailierte 3D-Modelle erstellt |
OSMBuildings | JavaSript | ... | Java-Tool, welches aus OSM-Daten 3D-Modelle erstellt |
OSM go | JavaScript | LGPL | Java-Tool, welches aus OSM-Daten einfache 3D-Modelle mit selektierbaren OSM-Objekten erstellt |
TileMill | Windows, macOS, Linux | 3-clause BSD | CartoCSS ist eine spezielle Lösung, um eine benutzerbestimmte Rendering von Mapnik zu benutzen. |
TopoMapCreator | Windows | GPLv2 | |
XNavigator | Java SE | GPLv2 | OSM in 3D |
Clientseitige Bibliotheken
- Hauptartikel: Frameworks
Name | Ziel Platformen | Ziel Sprachen | Lizenz | Bemerkungen |
---|---|---|---|---|
Cartagen | Web | JavaScript | MIT | - HTML5 Canvas/JavaScript-basierte Renderprogramm |
Carto Mobile SDK | Android, iOS, Windows Phone | Java, Objective-C++, Swift, C# | BSD | Unterstützt 3D-Stadt-Overlays, bearbeitbare Vektor-Overlays und ist in hohem Maße anpassbar. |
CartoType | Windows, iOS, Android, macOS, Unix | C++ | Proprietär | ist ein Multi-OS Render- und Routenplanungsbibliothek unter Lizenz. Läuft auf Desktop & Mobile Windows und auf Symbian OS. Geschrieben in C++. |
GLMap | iOS, Android | Objective-C, Swift, Java | Proprietär | Offline oder online Vektor Karten rendern auf Geräten mit OpenGL ES |
Halcyon | Flash | ActionScript | WTFPL | ist ein AS3 (ActionScript) Renderbibliothek , entwickelt von Richard Fairhurst und wird inPotlatch2 genutzt |
Kartograph | Web | JavaScript | LGPL | JavaScript-Bibliothek zum Anzeigen von generierten Vektorkarten in einem beliebigen Browser |
Kothic JS | Web | JavaScript | BSD | Voll ausgestattete JavaScript-Map-Rendering-Engine mit HTML5-Canvas. Es wurde ursprünglich als JavaScript-Port von Kothic entwickelt. |
libosmscout | Linux, macOS, iOS, Windows, Android, Qt | C++, Java | LGPL | Bietet einfache, Schnittstellen zu Offline-Rendering- und Routing-Funktionen, die auf OpenStreetMap-Daten basieren. |
Mapbox Android SDK | Android | Java | BSD | Zeigt Mapbox Vektorkacheln in einer Slippy-Map mit OpenGL ES an |
Mapbox GL JS | Web | JavaScript | BSD | Zeigt Mapbox Vektorkacheln in einer Slippy-Map mit WebGL an |
Mapbox iOS SDK | iOS | Objective-C, Swift, Interface Builder | BSD | Zeigt Mapbox Vektorkacheln in einer Slippy-Map mit OpenGL ES an. |
Mapbox macOS SDK | macOS | Objective-C, Swift, Interface Builder, AppleScript | BSD | Zeigt Mapbox Vektorkacheln in einer Slippy-Map mit OpenGL an |
Mapbox Qt SDK | Qt | C++ | BSD | Zeigt Mapbox Vektorkacheln in einer Slippy-Map mit OpenGL an |
Mapbox SceneKit SDK | iOS | Objective-C, Swift | ISC | Stellt Daten zum Generieren benutzerdefinierter 3D-Szenen in SceneKit bereit. |
Mapbox Unity SDK | Cross-platform | C# | Apache | Stellt Daten zum Generieren benutzerdefinierter 3D-Szenen in Unity bereit. |
Mapsforge | Android, Java ME | Java | LGPLv3 | freies, offenes Toolbox, das der Gemeinschaft ermöglicht, einfach neue auf OSM-basierte Programme zu erstellen. Benötigt Tools und APIs, die Möglichkeiten für Karten-Rendern, Routenplanung und -navigation, POI auflisten und suchen, Karten überlagern und mehr haben. Geschrieben in Java, Zielplattformen scheinen Android-Geräte zu sein. |
osm2x3d | Web | JavaScript | LGPLv3 | OSM 3D Konverter mit nativem WebGL Rendering (x3dom JS library) |
Tangram | Web | JavaScript | MIT | 2D- und 3D-Kartenrenderer mit WebGL |
Tangram ES | Android, iOS, Linux, macOS | C++ | MIT | 2D- und 3D-Kartenrenderer mit GL ES |
Historisch
Die folgenden Renderer werden nicht mehr gepflegt sind aber aus historischen Interesse:
- Mapweaver - Successor of mapgen.pl Perl rendering, OSM to SVG and with Inkscape to PNG or PDF, automatic map key. Supports street and POI lists, grids and coordinate overlays. Automatic extraction of desired place out of OSM file. Not running under Windows.
- Memphis – a map-rendering application and a library for OpenStreetMap written in C using eXpat, Cairo and GLib. It's licensed under the terms of the GNU Lesser General Public License.
- Osm2pov - Tool, um isometrische Karten von OSM-Daten zu erstellen
- Osmarender – XSLTs, das aus OSM-XML-Daten SVG-Grafiken erzeugt. tiles@home war ein Projekt, das Osmarender nutzte, um eine Kachel-Reihe für eine Ansicht neben Mapnik zu schaffen, aber Osmarender kann auch eine gute Option sein, einmalig zu rendern. SVG-Formate ermöglichen es, die verbesserten Änderungen sofort zu umsetzen (siehe andere Option weiter unten). Es wurde am 1. März 2012 von der Hauptkarte auf osm.org entfernt.
- osmbrowser – kann große Gebiete aus OSM-Daten laden und sie in Vektorgrafiken rendern.
- osmrender.pl - simple maps easily drawn with a Perl program. Uses *.osm as input.
- Pyrender – eine Sammlung von Ideen, und einige Codes in Python für verschiedene Rendern-Server Schritte
- TileMill CartoCSS ist eine spezielle Lösung, um eine benutzerbestimmte Rendering von Mapnik zu benutzen.
- VTM – cross-platform vector tile renderer developed by the OpenScienceMap project
Andere Renderer, einschließlich Vektor-Renderer:
- Mapgen.pl - Perl rendering, OSM to SVG and with Inkscape to PNG or PDF, automatic map key. Supports street and POI lists, grids and coordinate overlays. Automatic extraction of desired place out of OSM file. Not running under Windows.
- PHP rendering – Renderprogramm geschrieben in PHP. Nicht mehr unterstützt.
- Phprender – aktualisierte Version des obigen
Kogutowicz - Eine erweiterbare, Mehrzweck-Java-basierte Render-Engine. Das Projekt ist unter Entwicklung. Zurzeit nicht durch Endnutzern verwendbar.
- Cobra – aufgegeben. Net/mono Render-Engine mit SVS und Raster Ausgabe
- Ceyx - .osm Analysator und MapCSS Render-Programm unter aktiven Entwicklung MapCSS ist die stylesheet-Sprache, verwendet von Halcyron, um den Blick auf die Karte zu beschreiben und wenn du schon mit HTML 5 gearbeitet hast, wirst du dich wie zuhause fühlen. Ceyx benötigt python, python-cairo and pygtk (für pango/pangocairo).
- MapDiff generiert Animationen. Geschrieben in D
3D Render-Programme
- OpenStreetMap 3D - OSM in 3D als eine Web-Seite
- ShugenDoMap - Multi-Plattform 3D-Echtzeit Renderprogramm. Speziell gemacht für mobile Plattformen wie Smartphones oder Tablet-PCs.
Siehe auch
- Creating your own tiles - verschiedene Möglichkeiten mit kurzen Beschreibungen
- List of OSM based Services - hauptsächlich eine Liste der verschiedenen gerenderten Karten
- Category:Renderers - Wiki Kategorie für Seiten über Render-Programmen
- 3D Development