Kompas - multiplatform navigation software
In 2007-2008 I developed Map2X, which was an simple offline map viewer for GP2X gaming console. Unfortunately because lack of time (and my inability to develop more versions simultaenously) was the application unusable right when Google Maps changed. Therefore it was not possible to download any more maps for offline viewing. Despite of that the app was fairly successful and it was translated into three another languages.
In 2010, two years after, the Map2X was definitely dead, so I tried to rework it from scratch with goal to have multiplatform and easily extensible application.Kompas
Viewing online and offline maps
These online maps are currently supported:
- Bing Maps
- Google Maps
- Historic aerial maps of Czech Republic
- MapQuest Open
- Ovi Maps
- Yahoo Maps
If the map is in one of supported map projections, coordinate computation is possible. Current coordinates under mouse cursor are displayed in the status bar, right click menu has an option to copy the coordinates to clipboard. As an example of flexibility there are three historical maps (from 1689, 1630 and celestial map from 1675) in stereographic projection.
You can of course mix up online and offline maps, so you can for example load 5 map packages of different areas and beside that enable online map. The application will then look for map tiles in packages first and if it doesn't find them in any package, it will download them from internet.
Downloading maps, format conversion
Not always there is an internet connection available, so it!s good to have the ability of downloading the map for offline viewing. Map downloading is done with five-step wizard, where you select area, layers and zoom levels which you want to save. The wizard will then compute (very rought) size of downloaded package and starts downloading. Saving is available not only for online maps, but also for offline or combined. Using the wizard you can merge a few opened packages into one or, on the other side, split one big package into a few smaller.
Except the map viewer the application has some simple tools for computing distance or converting coordinates. Fields for entering coordinates accept both 49°19'N 12°8'E and 53.317 -24.456 formats, the application will try to guess it and convert it to the right format.
Everything is a plugin
Almost everything the application consists of, can be replaced with something else or simply add or remove another functionality, everything thanks to plugins. Every supported map format, map projection and tools are plugins. Even the map viewer is an plugin, so in the future versions it would be possible to replace it for example with 3D Earth model. Plugins can be dynamically loaded, reloaded and unloaded without the need for application restart.