Kurze Anleitung zur Erstellung von Offline-Karten


AFTrack nutzt für die Offline-Karten zwei Speicherarten:

OSZ-Dateien - das sind Zip-Dateien mit den Kacheln in den entsprechenden Unterverzeichnissen und einer Info über die Größe der Karte und die enthaltenen Zoomstufen. OSZ-Dateien sollten um die 5000 Kacheln enthalten, sonst kann die Generierung des Inhaltsverzeichnisses zu lange dauerm bzw. es kann garnicht geöffnet werden. Aus die Verwendung von mehreren Karten gleichzeitig kann schwierig werden. Dafür ist der Zugriff, wenn es erstmal geöffnet ist, sehr schnell.

Sqlite-Datenbanken - Es können die Formate mbtiles (Mobac: MBTiles SQLite) oder sqlitedb (Mobac: Big Planet Tracks SQLite, OSMAND SQLite oder RMaps SQLite) verwendet werden.

Anmerkung: Für die Symbian-Version von AFTrack können nur OSZ-Dateien genutzt werden.


Für die Generierung kommen die Programme MobileAtlasCreator (download) und Maperitive (download) zum Einsatz.
Es macht Sinn, beide Programme in einem Sammelverzeichnis zu installieren, um die Übersicht zu behalten.
Z.B.
d:/Maps/Mobac
d:/Maps/Maperitive

Beispiel mit Mobac
Beispiel - Einsatz von Maperitive
Beide Programme zusammen nutzen
Erweiterte Generierung
Spezial: transparente Karte als Overlay


1. Beispiel

Mobac holt aus einem Datenspeicher (online oder offline) die benötigten Kacheln und bindet sie in dem Zielformat zusammen.

Einfachste Möglichkeit
- Ausgabeformat AFTrack OSZ festlegen (Menü: Atlas)
- Online Karten Quelle auswählen
- Zoom Level bestimmen
- Area auswählen mit der Maus
- der Selektion einen Namen geben
- Auf  'Create' drücken




Die fertige Datei liegt im Mobac-Verzeichnis atlases mit dem Namen Cux_test_10_16.osz.

Es können auch mehrere Selektionen zusammen bearbeitet werden.


Problem Online Karten Quellen

Es ist bei den Servern für die Karten-Kacheln nicht gern gesehen, wenn mit Programmen wie Mobac große Mengen auf einmal abgeholt werden. Verschiedene OpenStreetMap Server blockieren auch diese Programme - siehe dazu im OSM-Wiki.


2. Beispiel - Einsatz von Maperitive

Um aus OSM-Rohdaten Bitmap-Grafiken zu erstellen gibt es das Programm Maperitive. Auch hierzu ein einfaches Beispiel:

- Karte auswählen
- Im Menü 'Geometriy Bounds' setzen
- Über das Menü 'Download OSM-Data (Overpass)' die Rohdaten holen
- Die Web-Map auschalten
- Und über das Menü 'Tools/Generate Tiles' die Kacheln generieren.


Maperitive easy

Nach der Fertigstellung liegen die Kacheln im Verzeichnis tiles von Maperitive.

Es ist allerdings besser, die Kacheln über die Kommandozeile zu generieren, dann kann man die Farbtiefe selbst bestimmen:
generate-tiles  minzoom=10 maxzoom=16 color-depth=8

Über die Komandozeile kann jetzt noch eine mbtiles-Datenbank generiert werden.
Dazu beim Command prompt folgendes eingeben:

generate-mbtiles  minzoom=10 maxzoom=16 color-depth=8

Und man erhält eine Datei map.mbtiles


3. Beide Programme zusammen nutzen

Ein etwas komplexeres Beispiel für das Zusammenspiel beider Programme.

Es soll Kreta als Insel in den Zoomstufen 10-16 generiert werden.

Vorbereitung in Mobac:

- mit einer Standard-Web-Karte eine Auswahl treffen. Eine Kachel in der Zoomstufe 10 entspricht ca 5000 Kacheln in den Zoomstufen 10-16
- Profil speichern für später (download)

Crete

Nun mit Maperitive die Daten holen.

- Auschnitt markieren
- Download von OSM Data
- Die Web-Map auschalten
- Über die Kommandozeile die Kacheln generieren
  generate-tiles  minzoom=10 maxzoom=16 color-depth=8

Crete

Jetzt die Verbindung der Programme:

Die neue Kartenquelle muss Mobac bekannt gemacht werden.
Dazu muss eine XML-Datei eingelegt werden (download) und ins Mobac-Verzeichnis mapsources kopiert werden.
------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <localTileFiles>
        <name>Maperitive Tiles</name>
        <sourceFolder>D:\maps\Maperitive\Tiles</sourceFolder>
        <backgroundColor>#00000000</backgroundColor>
    </localTileFiles>
----------

Nach einem Mobac Neustart stehen in dieser Region die neuen Kacheln zur Verfügung.

Nun muss nur noch die neue Datenquelle ausgewählt werden und der Atlas erstellt werden.
Im OSZ-Format werden 17 Teilkarten erstellt,
mit MBTiles SQLite ist es nur noch eine Datei mit alle Kacheln.

4. Erweiterte Generierung

Bisher wurden für die Generierung die Rohdaten direkt aus dem Internet geladen.
Um das zu verhindern kann man für ganze Bereiche die Rohdaten auf den lokalen Rechner laden.
Server dafür sind GeoFabrik und CloudMade
Für das Kreta Beispiel die Datei greece.osm.pbf von der GeoFabrik herunterladen oder greece.osm.bz2 von CloudMade.

Die weitere Generierung wird jetzt über ein Script gesteuert (Download).

-------------------------------------------
use-ruleset location="D:\Maps\Maperitive\Rules\Default.mrules"
apply-ruleset
change-dir D:\Maps\Maperitive
load-source "D:\MapsMaperitive\Karten\greece.osm.pbf"
set-geo-bounds 23.5,34.7,26.4,35.8
generate-contours interval=25

generate-tiles  minzoom=10 maxzoom=16 color-depth=8

oder als mbtiles-Format

generate-mbtiles  minzoom=10 maxzoom=16 color-depth=8
-------------------------------------------
Die Befehle kann man auch in der Kommandozeile von Maperitive eingaben.

Start des Scripts über das Menü oder gleich mit dem Programm zusammen.

d:\Maps\Maperitive>maperitive scripts/crete.mscript

Und wieder über Mobac den Tiles-Container generieren - siehe oben.


5. Spezial: transparente Karte als Overlay

a) Bergschatten
Maperitive neu starten und ein Gebiet auswählen. Dann im Menü  Tools/generate hillshading auswählen.



Diese Regeldatei über die Kommandozeile des Programms bekannt machen: use-ruleset rules\trans.mrules
Und anwenden apply-ruleset
Auswahl der Web Map aufhaben. Nun ist nur noch die der Hintergrund sichtbar (schwarz).
Nun wird die Karte generiert über die Kommandozeile: generate-mbtiles minzoom=10 maxzoom=16
Ohne Dateinamen wird diese im Verzeichnis tiles als map.mbtiles abgelegt.

Für die nächsten Dateiarbeiten wird sqlite benötigt. Download

Damit die Karte als Overlay erkannt wird, muss auf der System Kommandozeile dieser Befehl eingegeben werden:
sqlite3 maps\map.mbtiles "update metadata set value='overlay' where name='type';"
Kontrolle mit
sqlite3 maps\map.mbtiles "select * from metadata;"

Es kann auch ein sprechender Name vergeben werden
sqlite3 maps\map.mbtiles "update metadata set value='My Hill Area' where name='name';"

b) Parkplatz Beispiel

Für dieses Beispiel die gleiche Selektion und die geladenen Regeln weiter genutzen.
Zusätzlich müssen jetzt die OSM Daten über das Menü 'Map' geladen werden.



Und wieder die Karte generieren

generate-mbtiles minzoom=10 maxzoom=16

und als Overlay umarbeiten:
sqlite3 maps\map.mbtiles "update metadata set value='overlay' where name='type';"



Zurück zu AFTrack - GPS Tracking Android / Symbian