Cette partie décrit le contenu du répertoire trunk de ToolMap. Il s’agit du répertoire placé sous gestion de version (Subversion). Le répertoire trunk contient l’arborescence listée ci-dessous (uniquement les deux premiers niveaux)
Ce répertoire contient diverses applications en ligne de commande. En général, elles se composent d’un fichier C++ (main.cpp) et d’un fichier de construction CMake (CMakeLists.txt). Les diverses options supportées sont listée lorsque l’application est lancée avec la commande application -h
Cette application a été développée pour répondre à une demande de support de la part de Swisstopo. En effet, un de leur projet contenant 4500 lignes posait des problèmes à ToolMap. Une partie des lignes de ce projet étaient incorrectes. lineunion permet d’unir de manière incrémentielle les lignes du projet afin de localiser les lignes incorrectes.
Cette application permet de comparer 2 fichiers ESRI Shapefiles. Elle s’utilise de la manière suivante : shpCompare -v fichier1.shp fichier2.shp
(cf )
Cet outil permet d’importer des fichiers ESRI Shapefiles dans un projet ToolMap. Il permet l’import des géométries (points et lignes) ainsi que des attributs. Il a été développé afin de pouvoir importer le projet SION, fabriqué avec l’aide de ToolMap 1, dans un projet ToolMap 2 propre.
ShpImporter [-v] [-o]
[ToolMap project file]
[SHP directory]
[rule files directory]
shpimporter fonctionne de la manière suivante. Il prend en entrée un projet ToolMap, un répertoire dans lequel sont stocké les fichiers ESRI Shapefiles ainsi qu’un répertoire dans lequel sont stockés les fichiers de règles (fichiers textes). shpimporter va parcourir touts les fichiers de règles et va, pour chacun, importer les données selon les règles spécifiées. Les fichiers de règles sont donc l’élément clé du processus. Ils font le lien entre:
Les fichiers de règles sont des fichiers avec l’extension .TXT, séparés par des tabulateurs. Ils peuvent être ouverts dans Excel (cf ). La structure exacte de ces fichiers serait trop longue à décrire ici, Pour un exemple relativement exhaustif, l’on pourra se référer aux fichiers produits pour la migration du projet SION (répertoire sion_transfert).
Cet outil permet de fusionner deux projet ToolMap. Il s’utilise de la manière suivante : toolmerge project1 project2
. Toolmerge fonctionne de la manière suivante:
Pour que toolmerge fonctionne, les deux projets doivent se situer dans le même répertoire.
Ce répertoire contient les ressources graphiques liées au projet (icônes, curseurs, images).
Ce répertoire contient le fichier cmake principal (CMakeLists.txt) ainsi qu’un répertoire de scripts cmake permettant de localiser les différentes librairies nécessaire à la compilation du projet. Le sous répertoire build-script contient des scripts python (fonctionnent avec Python 3 uniquement) :
Ce répertoire contient un fichier et des images permettant de créer la documentation développeur avec Doxygen (classes, fonctions, etc.). Doxygen peut être téléchargé depuis http://www.doxygen.org/.
Ce répertoire contient diverses ressources destinées à la construction de programme d’installation pour les différentes plateformes. Ils n’ont normalement pas vocation à être utilisé tels quels mais sont appelés par les scripts de compilation (du répertoire build).
Ce répertoire contient deux composants dont le code est partagé avec d’autres projets.
wxHandleFatalExceptions();
dans le constructeur de l’application et ensuite il faut surcharger la méthode virtual void wxApp::OnFatalException();
. Dans cette méthode la classe lsCrashReport
peut être initialisée et appelée (voir le fichier toolmap.cpp ligne 88 et suivantes).lsVersion
et lsVersionDlg
et permet l’affichage d’une fenêtre listant les différentes versions des composants utilisés ainsi que le numéro de version SVN du logiciel (cf ).Ce répertoire contient les ressources suivantes en lien avec ToolMap:
Contient diverses ressources en lien avec la base de donnée embarquée. L’on trouvera ici des fichiers *.MWB. Ces fichiers s’ouvrent avec le logiciel MySQL Workbench http://www.mysql.fr/products/workbench/. Ils contiennent les schémas jusqu’à la version 224 (la dernière version dans ToolMap actuellement est la 230).
On trouvera également le fichier décrivant les changements effectués dans la base de donnée jusqu’à la version 221. Ce fichier n’est plus maintenu à jour, en effet, depuis la version 220, ToolMap est capable de mettre à jour d’une version de la base de donnée intégrée à la suivante. Pour plus de détails sur ce processus, on se référera au fichier tmprojectupdater.cpp
Contient principalement les fichiers de définition des fenêtres (fichiers FBP s’ouvrant avec wxFormBuilder). Les fichiers *.CPP et *.H sont des fichiers automatiquement générés par wxFormBuilder et conservé ici pour référence. Ils ne devraient pas être modifiés.
Contient des pages web pour Yahoo street et Yahoo satellite. Yahoo fonctionne visiblement selon un autre système de coordonnées ou avec d’autres niveaux de zoom que ceux présents dans Bing ou Google. Du coup ces ressources web ne sont actuellement pas intégrées dans ToolMap mais conservée ici à des fins d’archive.
Contient les fichiers *.HTML et *.JS permettant d’afficher les images de support web dans ToolMap. Ces fichiers sont copiés lors de la compilation (ainsi que lors de la création de l’installeur) dans les ressources de ToolMap.
Contient les fichiers de code (*.CPP) et d’en-têtes (*.H) répartis dans les répertoires suivants:
Contient un fichier de code (*.CPP) ainsi qu’un fichier d’en-têtes (*.H) qui ont vocation à servir de modèle lorsqu’un nouveau fichier de code doit être crée dans l’arborescence de ToolMap.
Ce répertoire contient le fichier CMake ainsi que les sources pour les tests unitaires. Ces derniers permettent de s’assurer qu’aucune régression n’est apparue lors des derniers changements effectués. Les tests unitaires peuvent être lancé par le script update_toolmap.py et utilisent [cxxtest] (#cxxtest).