Published by breki on 30 Dec 2008 at 06:08 pm
GroundTruth – A New Garmin Mapmaking Tool

photo credit: Gregory Pleau
Currently the development of Kosmos is on hold – about a month ago I started implementing a new tool for generating Garmin maps from OpenStreetMap data. The tool is called GroundTruth (and here’s why).
Since there are already some tools which do this kind of work, you’ll probably ask why I felt a new tool is needed. Let me answer by saying that I use my Garmin unit mostly for hiking (and mapping hiking paths). For the past year or so I used a tool called Mkgmap for generating Garmin maps of Slovenia (both road and hiking maps). The problem I had with Mkgmap is that it only supported single tag rules for converting OSM features to Garmin map elements. This is problematic if you want to fill your map with as useful information as possible.
One simple example would be to show hiking paths which are trailblazed differently from ordinary non-marked footways. This is important for hikers, since trailblazed path usually mean you won’t get lost even if you don’t have a GPS unit or if your unit’s batteries are dead.
The trailblazed paths are just one example. There are a lot of other combinations of OSM tags which are important. Since I didn’t notice any development Mkgmap activity on this issue, I decided to give it a go myself (it looks like Mkgmap now supports complex rules after all, but I haven’t tried it).
I’ve taken the idea of storing rendering rules on OSM Wiki pages from Kosmos. Here’s a sample of how these rules look like for GroundTruth:
The second motivation for GroundTruth was to make a tool which would be a one-stop-shop for Garmin mapmaking. This includes:
- support for custom map styles (with automatic generation of TYP files)
- support for additional map features (like map transparency)
- generation of Mapsource preview files
- registration of generated files into Mapsource
- automatic uploading of generated maps onto a GPS unit.
These features are already implemented and I’ve tested maps on my hiking trips. I’ve done some work on defining rendering rules to show different types of highway=footway (red lines, solid or dashed depending on its visibility) and highway=track (gray lines, solid or dashed depending on the track grade) (screenshots are from Mapsource):
One of the nice things that can be done using GroundTruth is to combine several criteria using semitransparent lines or areas. We can show marsh in combination with other landuse types (like forests):
And here we show all trailblazed ways (either footways or tracks) with a white border:
All this can be achieved simply by specifying rendering rules. Everything else (custom types definitions, generation of TYP files) is done automatically by the tool.
I should note that GroundTruth uses a free version of cgpsmapper to do the actual generation of IMG, TDB and TYP files (I’m no way affiliated to the author of cgpsmapper).
What Still Needs To Be Done
GroundTruth is now nearing the first release. I still have to add support for POIs (you’ll be able to use your own icons for these) and some other minor features. Hopefully this will be done in next few weeks.
After the first release, I’ll concentrate into providing support for contour lines from SRTM height data (a new tool will probably be needed for this). Possibility for map routing should also be investigated. So if you’re interested in Garmin maps, please stay on this channel…






cgpsmapper on 30 Dec 2008 at 21:05 #
Sounds interesting,
If you wish, will add a link to your page.
Stan
breki on 31 Dec 2008 at 7:01 #
Hi Stan,
That would be great, thanks.
Igor
Chrisz on 01 Jan 2009 at 22:51 #
WOW this tool sounds really interesting. At the moment I’m using mkgmap together with sendmap to load my Garmin. It works, but not really good, I hope your tool will be better!!!!
igorbrejc.net » First Mapping Trip of 2009 on 04 Jan 2009 at 21:08 #
[...] spending a few days mostly sitting behind the computer and working on GroundTruth, today I decided to go out and enjoy a perfect winter’s day – and do some mapping of Pohorje, [...]
igorbrejc.net » Visiting Regex.Replace() Method And MatchEvaluator Delegate on 05 Jan 2009 at 18:11 #
[...] first used this method few days ago when I was implementing labeling of map elements for GroundTruth, a new mapmaking tool for Garmin which I’m currently working on. The idea was to provide [...]
igorbrejc.net » GroundTruth: Status Update on 10 Jan 2009 at 20:43 #
[...] GroundTruth now supports custom POI icons: [...]
igorbrejc.net » GroundTruth Released! on 26 Jan 2009 at 19:45 #
[...] my first post about GroundTruth [...]
Federico Cozzi on 17 Feb 2009 at 10:21 #
I still haven’t used your GroundTruth but it looks excellent. I need to use it ASAP! By the way, please move the routing support up in your list of priority. I know that it needs a registered version of cGPSmapper, but one could use the free mapcenter tool to compile routable maps. Thanks!
breki on 17 Feb 2009 at 18:22 #
Frederico,
I’ll have to investigate the MapCenter further. I’m not promising much on routing since AFAIK cgpsmapper version that supports routability is quite expensive and it will be difficult for me to test the code without it.
Stefan Lands on 27 May 2009 at 12:43 #
Hello Igor,
I tried to use groundtruth 1.5.20.0 to download map data from osm. Unfortunately this didn’t work very well. When trying this command:
groundtruth getdata -bu=”http://www.openstreetmap.org/?lat=46.512&lon=11.327&zoom=9&layers=B000FTF”
I get some Error 501: Not implemented …
Is this due to the new API perhaps? If so, will there be a fix soon?
This looks like a very promising project! Thank you!
breki on 27 May 2009 at 16:44 #
@Stefan,
This is probably due to OSMXAPI server being down, so it’s not GroundTruth’s fault. I suggest trying it again later.
BM on 04 Aug 2011 at 19:12 #
Hello,
I am trying to use Groundtruth. With the command: groundtruth getdata -b=47,-123.5,47.5,-123 -osm=test.osm I always get the error message ” … The remote server returned an error: (503) Server unavailable….”
There is no data download at all. Has the OSM server address changed?