News

Heldentaten und Ideen

News – Diercke Atlas Digital

Diercke Atlas Digital

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 verschiedene 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 Entwicklungswerkzeuge 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

Translate »