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
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.
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)
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
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