OruxMaps est une très bonne application mobile free sous Android pour visualiser des cartes online/offline et se répèrer avec son GPS !
Le logiciel MOBAC (Mobile Atlas Creator) permet de charger des cartes online (flux WMS) comme par exemple OpenStreet et de générer des Atlas offline à différents formats, dont le format OruxMaps. Il est ensuite possible d'importer ces fichier sur votre mobile (généralement, dans le répertoire /sdcard/oruxmaps/mapfiles/). Néanmoins, cela ne présente qu'un intérêt relatif dans la mesure où l'application mobile OruxMaps est déjà capable de gérer nativement ces cartes online et de sauvegarder des parties de ces cartes pour une utilisation offline.
Nota Bene : Un fichier BSH à placer dans le répertoire mapsources de MOBAC permet d'utiliser directement les flux WMTS du GeoPortail. L'idée sous-jacente est de générer des requêtes au webservice du GeoPortail pour récupérer les tuiles… Par exemple : ici Mais, attention, pour que la requête fonctionne, il faut remplir correctement le champs referer dans le header de la requête HTTP.
Un peu d'aide sur le GeoPortail : http://api.ign.fr/tech-docs-js/fr/developpeur/wmts.html
Si vous possèdez des cartes au format QuickChart (.qct), comme les fameuses cartes TOP25 de l'IGN, ces dernières ne sont généralement utilisables qu'avec le logiciel commercial Memory-Map sous Windows. Certaines applications mobile comme AlpineQuest permettent de lire ces fichiers nativement. Néanmoins si vous souhaitez les utiliser dans OruxMaps ou d'autres logiciels, les étapes suivantes vont vous aider.
La première étape consiste à convertir une carte Memory-Map QuickChart (.qct) au format Map de OziExplorer (.map). Notons que OziExplorer est un logiciel Windows commercial, utilisant le format Ozi Map (.map). Ce format est suffisament répandu pour permettre ensuite la conversion dans de multiples formats.
Le programme qct2png fourni par Arb permet de décoder un fichier qct (QuickChart Memory-Map) et d'extraire l'image de la carte au format PNG. En outre, il peut afficher les données de calibrage de cette carte (e.g. lat/lon des 4 coins de la carte). J'ai modifié ce programme pour lui faire également générer le fichier Ozi Map associé au fond de carte PNG : qct2map.cpp. Voici un extrait de carte au format QCT pour tester ce programme : sample.qct
$ g++ -DUSE_PNG -O3 qct2map.cpp -o qct2map -l png $ ./qct2map -i sample.qct -o Writing output as PNG file: sample.png Writing metadata file (OziExplorer format): sample.map Calibration Metadata * width = 2880, height = 1280 * latTL = 44.873548, lonTL = -0.637273 * latTR = 44.875994, lonTR = -0.546371 * latBL = 44.844809, lonBL = -0.635746 * latBR = 44.847255, lonBR = -0.544844
L'exécution de cette commande donne une image de la carte au format PNG (sample.png) et un fichier texte de calibrage au format Ozi Map (sample.map). En outre il affiche les coordonnées géodésiques WGS84 des 4 coins de l'image : Top/Bottom Left/Right.
La deuxième étape consiste à convertir la carte au format Ozi Map en carte au format OruxMaps. Pour cela, il faut utiliser le programme OruxMapsDesktop. Il suffit de lancer ce programme sous Linux/Windows et de charger le fichier de calibrage Ozi Map obtenu à la première étape. Normalement, toutes les informations de calibrage se chargent automatiquement et l'on peut lancer la création de la carte au format OruxMaps Sqlite. On obtient alors ainsi un répertoire sample contenant plusieurs fichiers (sample.zip) Pour finir, il suffit de copier de répertoire sample dans OruxMaps sur votre mobile, typiquement dans le répertoire /sdcard/oruxmaps/mapfiles/.
En outre, ce programme permet un traitement par lot de plusieurs fichiers Ozi Map. Néanmoins, une version en ligne de commande serait un peu plus sympa : forum
L'outil MAPC2MAPC permet ensuite de charger le fichier Ozi Map et de le convertir dans d'autres formats plus répandus. Par ailleurs, MAPC2MAP permet de charger une image de la carte au format PNG et de générer le fichier Ozi Map en saisissant manuellement les géoréférencements des 4 coins de la carte, ce qui est un peu fastidieux.