blankblank blank


Archive for April, 2010

Not So Free Tools For Custom Garmin Vector Maps XVII: Paid Apps

After 16 posts on free tools for Garmin vector map creation, thought I’d throw in some links to non-free apps. Free apps are great, but they often have a steep learning curve, and require more effort to use; paid apps often have more features, and come with support.

GPSMapEdit: Free evaluation version already covered here; paid version offers more features.

MapMan: Free version already covered here; paid version adds a few more features. Not clear to me it’s worth the price (30 UK pounds); GPSMapEdit and MapWel are better choices in that price range.

Global Mapper:  Can export vector data in Polish Map (.mp) format, along with proper level formatting data. Supports just about every vector GIS format out there for input, and can re-project just about any coordinate system to the geographic/WGS84 coordinate system required for Garmin maps. At $300, hard to justify for that use only, but it’s a full featured vector/raster viewer and format converter as well.

MapWel: A full-featured vector map editor and compiler, with routing support recently added. Lots of supported import vector formats (shapefile, Polish Map Format .mp, OpenStreetMap OSM, GPX, GDB, KML, KMZ, DBX, PLT, WPT); you can also import raster imagery as a guide for drawing vector features.. Vectorizes raster images into Garmin format; allows custom symbology; very fast compiler. Biggest drawback has been incompatiblity with MapSource/Basecamp, but there is a somewhat clumsy workaround for that now. Basic version has a limited feature set, and only lets you create maps for a single unit; Advanced version removes those limitations.

gpx2img: Converts GPX tracks and waypoints to transparent .img vector map files, with customizable symbology. Not officially released yet. Based on the features listed on the website, you can get all of this functionality using free tools, but it may offer an easier workflow.

That’s pretty much all I’ve got for free and paid apps; if I’ve missed one, let me know. I’m working on an updated GUI for the mkgmap compiler, and that should be out sometime next week.




Free Tools For Custom Garmin Vector Maps XVI: Map Uploaders And Managers

If you’ve created a custom Garmin vector map using any of the tools in posts I through XV of this series, you’ll need a way to upload them to your Garmin unit. The simplest way is to copy them directly to the Garmin folder in your unit’s memory using a USB mass storage connection, or plugging a memory card into an external reader.. For older units, you’ll need to rename the binary .img file to gmapsupp.img, and it will replace any maps you already have there. With newer Garmin models (the Colorado/Oregon/Dakota/GPSMap 78 series), you don’t have to rename them, or replace mapsets currently in memory; they will automatically show up in the list of available maps.

There’s also a number of free tools that aid in either uploading maps to the Garmin, or installing them as standard mapsets for use with Garmin’s MapSource and Basecamp software.

Map uploaders:

SendMap: From the author of the cgpsmapper compiler, and the most fully-featured map upload program. There used to be a limited free version and a paid “Pro” version, but the “Pro” version is now completely free. Features include (from the website):

  • Automatic recognition of devices which are visible as USB-storage drives
  • Store a file list on disk (TXT file) that can be used later with ‘-f’ option
  • Support up to 2GB
  • Check for available memory in GPS – now sendmap will not start the upload process if there is not enough memory
  • Ability to change the ‘region name’ for every file
  • Support for uploading several TYP files (customization of built in types) – TYP files are used on maps with the same region name
  • Uploading of several unlock keys
  • Free license for distributing the program together with maps
  • Creation of EXE files merged together with maps, with user defined EULA
  • Creation of EXE files with predefined expiration data

The program can be used in either command-line or GUI; I find the latter adequate for most options. PatchIMG, GPS Send Map and img2gps (previous post) are alternate GUIs to SendMap, but they were designed for use with earlier releases of the limited free version of SendMap, and I don’t think they support all the options in the Pro version.

One drawback of SendMap is that it doesn’t directly support uploading to memory cards in readers, only to GPS units. For older Garmin models with USB 1.1 interfaces, this can result in slow transfer speeds for large mapset files. But you can generate a “gmapsupp.img” file on your computer, then manually copy it into the “Garmin” folder on a memory card using a much faster USB 2.0 card reader.

MapUpload – Free .img uploader; posted about earlier. Also doesn’t support memory card uploads, but doesn’t give you the option of creating a separate gmapsupp.img file. It does give you the option of adding a .img file to the existing maps loaded on the GPS, instead of just replacing them completely.

Mapset Managers/Installers:

These install sets of .img files into MapSource and Basecamp, so that you can select and combine them with other mapsets; also may offer other features, like the ability to uninstall a mapset. They are graphic front-ends to the cgpsmapper/cpreview compiler program; you’ll need to have at least the free version installed in order to use them.

MapSet Toolkit: The best tool out there; covered in an earlier post, but now with even more features, like an interface to the GMapTool program. Still under active development.

GPSMapManager: An alternate mapset installer; no longer under active development, and MapSet Toolkit is much better.

The GPS File Depot has a tutorial on how to create PC and Mac installers for mapsets, in case you want to distribute your map files in a more user-friendly format.




Free Tools For Custom Garmin Vector Maps XV: MapDekode

MapDekode: MapDekode is an alternate compiler for generating Garmin vector maps. It uses its own DBX coding language, which can be generated from OziExplorer *.plt/*.wpt files using the program, or converted from other formats using the program GPS TrackMaker. Creating the data files seems to be kind of a pain, and the map code format and compilation process are so different from the more-common Polish map/cgpsmapper process that I haven’t tried it out. If you have, and can point out any advantages, please leave them in the comments.

Sources for more info on MapDekode (plus some tools):

MapDekode Yahoo forum: Not a lot of activity here, but the Files section contains some useful utilities.

  • ImgTransparent: Makes a .img map file transparent (other programs like GPSMapEdit and MapTk can do this as well)
  • mpConv: Converts maps in the more common Polish Map format (.mp) to DBX.  MapTk contains an alternate converter
  • shpdbxconv: Converts shapefiles to DBX format

Map Authors Yahoo forum: Not a lot of interest in MapDekode in the forum itself, but the Files section has some useful stuff.

  • TM_MapDekode.zip- A PDF file describing how to create DBX files using GPS Trackmaker (not an intuitive process)
  • MapDekode plot analyzer – Analyzes OziExplorer *.plt files for use with MapDekode




Free Tools For Custom Garmin Vector Maps XIV: OSM Tools B

Continued from the last post, a few more tools for creating Garmin vector maps using OpenStreetMap data; these are more comprehensive map creation programs.

GroundTruth: A tool for generating full maps from OSM data and other sources. Feature set (from the wiki):

  • Support for custom line and area styles
  • Support for POI custom icons for POI
  • Map rules can be shared among mappers by publishing them on this Wiki.
  • Automatic generation of TYP files
  • Generating relief contours using NASA’s SRTM data
    • Generating OSM files with contours (a successor to Srtm2Osm)
  • Automatic downloading of OSM vector data
  • Support for additional map features (like map transparency) available through cgpsmapper
  • Conversion of national characters into the ones supported by Garmin units
  • Generation of Mapsource preview files
  • Registration of generated maps into Mapsource
  • Automatic uploading of generated maps onto a GPS unit
  • Command-line interface

The last has kept me from trying it out; the requirement to set map data and parameters using command-line options, outlined in the wiki GroundTruth manual, is a bit more effort than I’m willing to put in. Igor Brejc, the author of GroundTruth, also thinks that there’s an issue with publicly distributing maps created using Ground Truth. From the wiki:

GroundTruth uses 3rd party cgpsmapper software to generate the actual .IMG files for Garmin units. Unfortunately the license for the free version of cgpsmapper states that the produced maps cannot be distributed for commercial purposes. This is in conflict with the OSM license. The bottom line is: you cannot distribute Garmin maps made with the free / shareware or personal version of cgpsmapper if they contain OSM data. You can, however, distribute contour maps, since the original SRTM3 data is in public domain.

I’m not sure this is the case; while you may not be able to sell the maps created, the cgpsmapper license allows you to distribute them without restriction if you don’t charge for the maps. So if you weren’t going to sell them in first place, there may not be a conflict. But I’m no lawyer. I would think that GroundTruth might be able to get around this restriction by using an alternate, fully-free map compiler like MapTk or mkgmap.

Here’s a screen capture of a GroundTruth map from Igor’s website:

groundtruthcapture

OSM Map Composer: OSM Map Composer is an alternate program for generating full Garmin vector maps from OSM data (and other sources). The full feature list is long, and can be seen in English for an older version (0.60) at this website. It seems to have much of the functionality of GroundTruth, but also has a graphical interface as well:

osmcomposer

And since it uses the mkgmap compiler, there should be no possibility of license conflicts that would restrict distribution. The biggest problem for some might be the German interface. In my case, my German is pretty weak, and a need to create an OSM-based map hasn’t come up for me yet, at least not strong enough to make me work my way through translating the interface. There used to be an English-based interface, but the author indicates that he dropped that effort based on lack of interest. There is still an English manual for the older version available at this link, which might help you get started. And the sample maps shown at the wiki look pretty nice:

OSMComposersamples




Free Tools For Custom Garmin Vector Maps XIII: OSM Tools A

With the growth of OpenStreetMap data has come a number of tools to help in creating custom Garmin vector maps from it.

mkgmap: Takes OSM map data (in .osm format), and converts it to the binary Garmin .img format. More complete feature set (from the website):

  • Generates a map directly from a file saved from JOSM or from an extract of the main OSM planet file.
  • Converts several .osm files in one run of the program to create a map tile set.
  • Creates a .tdb file and an overview map that can be used to view the maps in MapSource or QLandkarte.
  • Creates a gmapsupp.img file that can be copied directly to an SD card.
  • Can also combine previously produced .img files into one gmapsupp.img file.
  • Create a .tdb and overview map from previously produced .img files.
  • The mapping between OSM features in the Garmin map can be customized.
  • Transliteration of characters to ascii where possible to enable viewing on low end devices or for international maps.
  • Character set can be specified for display on capable GPS devices.
  • Control over the zoom levels that any feature appears at.

And to this list I can add several additional useful features:

  • Java-based, so it’s multi-platform.
  • Also compiles Polish Map format files (.mp), produced by programs like GPSMapEdit and GlobGPS. Maps compiled this way don’t have the ID/copyright “tag” included with the free version of cgpsmapper.
  • Support for routing; now supports .osm and .mp input formats. An earlier post talks about a website that has free routable Garmin street maps created this way.

For full documentation, including a list of all the optional command-line parameters, see the mkgmap wiki page. And here’s an old post on how to download the OSM data into the required .osm format.

mkgmap GUIs: mkgmap is a command-line only program; a couple of programs add a simple GUI to make using it simpler. A few years ago, I wrote a simple GUI called mkgmapGUI, Windows-only, that lets you specify a .osm file and compile it into a Garmin .img file. There’s another one, also called mkgmapGUI, that’s a bit better behaved (e.g. doesn’t let you overwrite an existing file), and is Java-based so it’s multi-platform. Neither supports any of the command-line options available for more sophisticated uses; I hope to update mine in the near future so that it will support at least some of them.

CreateIMG: A package that combines a number of tools (including mkgmap), and semi-automates the process of creating a routable Garmin street map for any country. Just set the country in the CreateIMG.bat file, run it, and the data will be downloaded automatically and compiled into a routable map. Default country is Italy; see the ReadMe.txt file for instructions on how to change the country, and other useful info.

Tile splitter: Chops a large .osm data file into smaller chunks that meet the space limitations for Garmin vector map tiles.

osm2mp: If you want to work with OSM data in the Polish Map text (.mp) format used by GPSMapEdit and other programs, osm2mp is a Perl script that performs the conversion. But GPSMapEdit also lets you use the compiled .img format as an input, and programs like MapTk and GPSMapEdit++ can convert .img files to the .mp format.

OSMWrangler: Mentioned briefly in an earlier post:

OSM files often contain not just road data, but also locations for amenities like restaurants, parks, doctors, theaters, prisons, etc.; a full list is available here. These will be converted by mkgmap into points on the Garmin map, regardless of whether you want them or not. osmwrangler gives you the option of removing whichever amenity types you don’t want in your map, and generating a new OSM file without them that you can then run through mkgmap. Oddly enough, it’s only currently available in command-line format.

OSMGenerate:

OSMgenerate produces OSM files consisting of a standard grid of POIs or polygons (lines are not yet supported), each with a unique tag/key combination. It also produces a mkgmap style file. By compiling the OSM file using mkgmap in combination with the style file, you can generate a Garmin map with a grid of POIs or polygons, each with a unique hexadecimal Garmin type code, so that you can see what POI or polygon corresponds to any given Garmin type code.

The associated website also includes some useful additional information on using mkgmap.

Tomorrow, a few more OSM tools, specifically more comprehensive (and flexible) map creators.




Free Tools For Custom Garmin Vector Maps XII: TYP Tools B

Continued from yesterday, a few more tools for creating TYP files, custom symbology sets for Garmin vector maps.

GenTYP: Generates text code that can be compiled using cgpsmapper into a binary TYP file. Interface is somewhat cryptic if you don’t know TYP file terminology:

GenTYP

But there’s a decent help page here to walk you through the steps. The big plus here is that you are able to load a Windows 24-bit BMP image file, and convert it automatically into the XPM code format used for textual TYP files. So you can create your symbol design in a standard graphics editor, rather than relying on a simpler built-in editor. If I load in a symbol I created to depict an archaeological ruin site (here sized up from its original size of 16 x 16 pixels):

ruin

GenTYP converts it to XPM code format:

GenTYPedit

Web-based tools: Most of the TYP tools I’ve posted about are Windows-only, and none AFAIK work on Macs. But there’s a website with browser-based TYP creation and editing tools that are platform-independent; select the tool you want from the tabs at the top. Note: a bit quirky if you switch from one app to another; a browser refresh will usually fix that.

TYP Creator: Generates a TYP file from scratch, using graphics you upload:

webeditor

TYP editor: Upload a previously-created TYP file, and you can modify symbol attributes (but you can’t edit the graphics directly).

TYP decompiler: Takes an uploaded binary TYP file, and decompiles it into text code, e.g.:

pottext

I wish there were a TYP compiler here as well, to convert text TYP code to binary format, but you can’t have everything.




Free Tools For Custom Garmin Vector Maps XI: TYP Tools A

One of the most useful capabilities in custom Garmin vector maps is the ability to create your own designs for point icons, lines and polygon fill patterns, and use them in addition to (or as substitutes for) Garmin’s standard symbology sets. You define these in a special file called a TYP file, created either directly or by using the cgpsmapper compiler to convert a text code fileinto a special TYP file. You then you associate that TYP files with the maps that use your custom symbology. Here’s an example from the cgpsmapper manual of a map that uses standard Garmin symbology (on the left), and custom symbology (on the right):

typsample

This capability gives you enormous flexibility in creating your own thematic Garmin vector maps. But designing and coding custom TYP symbology in standard cgpsmapper text format can be a major pain; you have to assign colors to ASCII symbols, then manually type out the color code symbols to generate the image a la ASCII art (XPM format). Here’s sample code for a fill pattern (from a sample file in the cgpsmapper distribution):

las

This is just two color, and simple symbols; if you wanted to make an elaborate, multi-colored fill pattern or point symbol, it could take a long time to create it. Fortunately, there are a number of free tools that can simplify the process.

cgpsmapper: AFAIK, this is the only program that fully supports all TYP file features, and you should have at least the free version installed on your system. The documentation includes a short section on how to create and compile type descriptions in text format into a TYP file, and how to incorporate these new symbols in your map code. The distribution also includes sample TYP code in the program directory (like the example above).

GarminColor (in French; free forum registration required to download it): Older Garmin handheld GPS units (like the GPSMap and eTrex models) allow for only 254 colors, 16 gray levels + 238 assorted colors. More recent models (like the Colorado/Oregon/Dakota series) allow for a larger color range, but if you’re designing custom symbols for use on all color Garmin units, you might want to stick with the more limited palette to insure that they’ll look the same on all the Garmin models. GarminColor shows you the allowed color palette, and gives you the hex code for every one:

GarminColor

Click on a color to get the the hex code; click on the button at upper-right to copy the hex code to the clipboard. The numbers  in the middle of the color bars represent the RGB decimal equivalents of the hex code. The color bars surround these numbers let you adjust the color by increments. The long bars at left/right select neighboring colors in the palette; the long bars at top/bottom select lighter/darker colors. The short bars above and below the numbers let you increase/decrease the red/green/blue values by values that conform to the palette restrictions.

MapToolkit (MapTk): Subject of yesterday’s post; in addition to its other features, like compiling maps, it also contains a built-in editor for custom points, lines and polygons:

maptkicon

I’m still struggling my way through decoding the MapTk manual, but it appears as though it creates/edits TYP files directly, without the need for the cgpsmapper compiler. And it looks as though the palette is limited to 254 colors, making it fully compatible with all color Garmin units.

TYPViewer: A very nice TYP file viewer; will take text TYP code or a compiled TYP file as input, and let you view the symbols and text code for those symbols:

TYPViewer

You can modify the TYP code directly in the text window; a red button will pop up telling you to “click here” if you want to incorporate those changes, and you’ll see them implemented immediately in the symbol graphic at upper right. But if you double-click on a custom symbol listed at left, you’ll bring up a graphical symbol editor:

TYPViewereditor

If you’re editing a binary TYP file, you can save it directly; if you’re working with a text file, you have the option of compiling it to a TYP file using cgpsmapper. There’s no help file, and the interface is completely in French, so you may need to spend some time with Google Translate to figure it out all the functionality. But I didn’t have too much trouble figuring out the basics using Google Translate (and my very rusty high school French). HT to csdf for this one.

A few more TYP tools tomorrow ….




Free Tools For Custom Garmin Vector Maps X: MapToolkit (MapTk)

Just found out about the MapToolkit program (aka MapTk) a few days ago, and I’m still puzzling my way through the PDF manual file figuring out how it works. But from the feature set described in the manual, it’s definitely worth a look:

  • Alternative to cgpsmapper for compiling .mp files; free of the copyright notice added by the free version of cgpsmapper.
  • Supports POI indexing (not supported in free version of cgspmapper).
  • Generates data/files required to install mapsets in MapSource and BaseCamp .
  • Graphical TYP file editor for customized point icons, lines and areas (more on that in the next post in this series) .
  • Analysis / decompiling of IMG-, TDB- and TYP-files
  • Modify transparency of existing .img files
  • Multiple GPX functions: Split GPX file with multiple types (points, tracks, routes) into multiple files, each with only one type; convert .mp file to GPX format and vice versa; simplify tracks, mask GPX files to fit into existing .mp files; etc.
  • And more ….

MapTk

One major caveat: you’ll need to be fairly familiar with both the .mp Polish Map format language and the general functionality of the cgpsmapper (described in the cgpsmapper documentation) to be able to decode the MapTk manual and the program’s functionality; even then, it’s likely to be a bit of struggle. Regardless, the feature set looks strong enough that I’ll make that effort. Version available for Windows and Ubuntu Linux, plus a generic Python version that should work on any Linux distribution.