News:
Heldentaten
und Ideen

Elternzeit

Der Diercke Digital Atlas ist die digitale Version des gedruckten Diercke Weltlatlas.
Mit der Software können die Karten aus dem Atlas nicht nur angezeigt, sondern
auch in vielfältiger Weise an die Bedürnisse des Schulunterricht angepasst werden.
Es existieren Versionen für die Plattformen Windows, Mac OS, iOS und Android.

Technische Umsetzung der Desktop Version

Die Desktop-Anwendung wurde mit der Entwicklungsumgebung Qt in C++ umgesetzt. Damit
ist es auf einfache Weise möglich, Versionen für Windows und MacOS zu erzeugen.
Für die Backend-Funktionen zum Laden und Darstellen der Karten wurde auf verschie-
dene Open-Source-Bibliotheken, wie libpng, libwebp, sqlite oder libxml2 zurückgegriffen.

Die Atlas-Karten sind nicht Teil des Installationspakets, sondern werden nach dem
Start des Programms und nach der Benutzeranmeldung bei Bedarf nachgeladen. Dafür
kommuniziert der Diercke-Atlas-Client mit einem Lizenzserver und einem Server für
die Auslieferung der Kartendaten.

Die Darstellung der Karten wird über OpenGL realisiert. Das vom Server
ausgelieferte Dateiformat der Karten ist bereits für die Darstellung in der
Diercke-Atlas-Software optimiert. So sind die Karten in einzelne, 256x256 Pixel
große Segmente (Tiles) aufgeteilt. Weiterhin liegen die Kartendaten für die
Darstellung in verschiedenen Zoom-Stufen in vier Detailstufen (Mipmaps) vor,
um Geschwindigkeit und Speicherbedarf der Anwendung zu optimieren.

Der Benutzer kann mit Hilfe von Zeichenwerkzeugen eigene Szenen erstellen und
speichern. Für das Speichern der Szenen wurde ein eigenes, XML-basiertes
Dateiformat entwickelt. Zeichungen werden innerhalb der Datei im SVG-Format
gespeichert, Binärdaten (z.B. Bildschirmausschitte) als Base64-kodierte PNG-Daten.
Die Zeichenwerkzeuge selbst wurden mit Hilfe von Qt-Zeichenfunktionen umgesetzt.
Für einige Karten ist auch eine 3D-Darstellung möglich. Diese wurde, wie auch
die 2D-Anzeige, über OpenGL umgesetzt.

Für das Erzeugen und Signieren der Installationspakete werden plattformspezifische
Softwarelösungen genutzt, z.Zt sind das "Astrum Installer" für Windows und
"Packages" für Mac OS.

Technische Umsetzung für Mobilgeräte

Für die Umsetzung der Versionen für Mobilgeräte wurde auf die nativen Entwicklungs-
werkzeuge der Zielsysteme zurückgegriffen. Also XCode für iOS und Android Studio
für die Android-Version. Ein plattformunabhängiges Backend wird für beide
Systeme in C++ entwickelt. Dabei werden mit Hilfe von CMake Projektdateien für
das Make-System erzeugt (Unix Makefiles). Diese werden dann mit Hilfe eines
G++ oder Clang-Crosscompilers in die Backend-Library des entsprechenden Zielsystems
compiliert. Unter Android wird dafür das Native Development Kit (NDK) genutzt, unter
iOS der in XCode enthaltene ARM-Crosscompiler. Das Frontend wurde für beide Plattformen
getrennt entwickelt, für iOS in Objective-C und für Android in Java.

Die Dateiformat für Atlas-Karten, Kartenlisten oder Szenen ist größtenteils
identisch mit dem der Desktop-Version. Die Darstellung der Vorschau-Ansicht
der Karten (Thumbnails) ist, anders als in der Desktop-Version, aber im Backend
mit Hilfe von C++ in OpenGL/ES umgesetzt. So kann für beide Plattformen dieselbe
Codebasis genutzt werden.

Wie in der Desktop-Version werden auch hier die Karten bei Bedarf von einem Server
geladen und verwaltet. Die in der Desktop-Version erstellten Szenen können angezeigt
werden. Für einige, ausgewählte Karten ist auch eine 3D-Darstellung möglich. Hier wird auf
eine speziell für das Projekt entwickelte Backend-Library zurückgegriffen.

Westermann Diercke Globus

Der Diercke Globus ermöglicht, neben zahlreichen weiteren Features, eine Darstellung
der Karten aus dem Diercke-Schulatlas in einer 3D-Ansicht als Globus-Textur. Die
Kartendarstellung kann dabei gedreht, vergrößert oder gekippt werden und mit der
angezeigten Globus-Textur gemischt werden. Weiterhin gibt es Zeichen-, Mess- und
Suchwerkzeuge, sowie die Möglichkeit, zusätzliche Informationsebenen einzublenden.

Technische Umsetzung der Desktop Version

Wie der Diercke Atlas wurde auch der Diercke Globus mit der Entwicklungsumgebung
Qt in C++ umgesetzt. Es exisitieren Versionen für Windows und Mac OS, sowie eine
experimentelle Version für Linux.
In Version 4.0 wird für die 3D-Darstellung die sphärische Merkator-Projektion verwendet.
Diese Projektion und das OpenStreetMap Format der 3D-Geometrie ermöglicht einen
einfachen Zugriff auf verschiedene Quellen für die Texturdaten des Globus.
So werden z.B. für die Satellitendaten die Datenquellen von "Here Maps" genutzt.
Andere mögliche kompatible Quellen sind Google Maps oder OpenStreetMap.
Die physische Globustextur wurde eigens für den Diercke Globus generiert und
wird von einem eigenen Server geladen. Das gleiche gilt auch für das digitale
Höhenmodell (Digital Elevation Modell, DEM).

Bei der Navigation auf dem Globus werden dynamisch Textur- und Ebenendaten
(z.B. Grenzlinien) vom Globusserver nachgeladen. Die Ebenendaten werden
zusammen mit den DEM-Daten zu einer OpenGL-Textur verbunden und in einem
lokalen Textur-Cache verwaltet.

Die Funktionen des Globus-Backend sind auf mehrere C++-Bibliotheken aufgeteilt.
Diese Bibliotheken sind als Qt-Projektdateien eingebunden, enthalten aber
keine Qt-Funktionen und sind somit leicht portierbar. Für den Zugriff
und die Verwaltung auf die Textur- und Kartendaten werden verschiedene
Open-Source-Libraries genutzt, z.B. libjpeg, libpng oder libxml.
In den Backend-Bibliotheken befinden sich außerdem die Implementationen der
C++Klassen für die Zeichenwerkzeuge und andere Werkzeuge, z.B. das Messwerkzeug
und die Suchfunktion.

Für die Generierung der segmentierten Ortsdaten wurden in C++ mehrere eigene
Tools entwickelt. Die Ortsdaten, die Textur- sowie die Kartendaten werden
dynamisch mittels HTTPS-Protokoll von einem Server geladen. Auf der Serverseite
wurden in C++, Perl oder PHP diverse CGI-Programme entwickelt.

Die Darstellung der Benutzeroberfläche des Globus-Client wurde größtenteils mit
Hilfe von Qt-Dialogen und Qt-Stylesheets umgesetzt. Daneben gibt es noch die
Darstellung Qt-unabhängiger Bedienelemente. Diese befinden sich in einer eigenen
Backend-Library (ResourceLib).

Als weiteres Feature wurde außerdem die Darstellung des Tag/Nacht-Globus entwickelt,
bei dem die Nachtseite der Weltkugel mit einer speziellen "Nachttextur" versehen ist.
Diese Darstellung soll die unterschiedliche Sonneneinstrahlung der Erde zu verschiedenen
Jahreszeiten verdeutlichen. Die Trenung der Tag/Nachtseite, abhängig vom Licheinfall,
wurde über ein OpenGL-Shaderprogramm realisiert.

Für die Installationspakete werden dieselben Tools genutzt wie für den Diercke Atlas.
Die experimentelle Linux-Version nutzt ein Bash-Shellscript zur Erzeugung eines
Debian-Installationspakets.

 

#software #digital #Atlas #technische Umsetzung #C++ #Mobilgerät #desktop