blankblank blank

Archive for the 'offline maps' Category Page 2 of 2

Transferring Geographic Data Files To And From An Android Unit II

Second part of a series (part one here) on how to copy map files and other geographic data to and from your Android phone.

3. Awesome Drop

A somewhat unusual approach, but seems to work quite well. Install the Awesome Drop application on your Android unit:

Continue reading ‘Transferring Geographic Data Files To And From An Android Unit II’

Transferring Geographic Data Files To And From An Android Unit I

The past four posts (one, two, three, four) have covered desktop applications that create offline map files for use with some Android map display and GPS tracking apps. But once you’ve created the maps, you need to get them onto your Android unit to use them. For that matter, if you use an Android app to save geographic information like waypoints and tracks, you’ll probably need an easy way to copy those files back onto your PC, or share them with others. It should be a simple process, but often isn’t. In my Droid X manual, there’s only a very short section on this, and it’s both limited and wrong. This post and the next will cover several different ways to move file onto, and off of, an Android unit, listed here roughly in order of speed:

  • Direct USB connection (fastest, but not always convenient)
  • FTP server (second fastest, but least convenient)
  • Online file transfer service (convenient, but only copies files to Android, not from)
  • Online file storage/synchronization services (slowest but most flexible)

Each has advantages and disadvantages, but one or more of them should meet most file transfer requirements. I’ll cover the first two today, and the others tomorrow.

1. Direct USB Connection

Your Android unit should have come with a cable that lets you hook it up directly to your computer. However, the default connection only allows for transferring media files from your computer to your Android. To copy data to/from your Android’s microSD memory card storage, you’ll need to put it into USB Mass Storage Mode:


Figure 1: Connect your Android unit to your phone with the USB cable; you should get a message indicating that it’s connected, and the USB symbol should show up in the status bar.


Figure 2: Drag down the status bar to view the message; you’ll see one that says USB connection. Tap on that …


Figure 3: … and the USB mode menu will appear. Select “USB Mass Storage” and tap OK; your computer will now mount the Android’s microSD card as a USB drive


Figure 4: Here, the Android microSD card is listed as removable disk G:. You can now navigate the folder structure through your computer’s file explorer


Figure 5: … and copy data to/from the unit. For example, I could copy the maps created in recent posts into a subfolder of the TrekBuddy folder, and could copy waypoint/track files from that folder, or from the TurboGPS folder


Figure 6: IMPORTANT! Once you’ve completed all file operations, don’t just disconnect the cable directly; you may wind up corrupting the memory card, which would be bad. Eject the microSD card disk by right-clicking on it and choosing eject, or using the “Safely Remove Hardware” option in the traybar icon. Once that’s done, go to the USB mode menu (from step 3), select PC Mode and OK, then wait a few seconds for the Android unit to re-mount the SD card.

Since this approach uses a USB 2.0 connection running at 480 Mbps, it’s going to be the fastest at copying data, and is probably the best choice for large files. But unlike the remaining three options, it requires that you have the correct USB cable handy. You could also pull the microSD card out of your Android unit, put it into a card reader, and then copy/move files from there; if you do this, make sure you follow the same “Eject / Safely Remove Hardware” process as above. But many Android units require you to remove the battery to access the microSD card, which can make that approach inconvenient.

2. Android FTP Server

Convenient, since it doesn’t require a cable, and fairly fast since it copies/moves files at the top speed of your wireless connection; you also don’t have to worry about dismounting/mounting your SD card. But highly geeky, since you have to install a FTP server program on your Android, configure it, then set up a network folder on your main computer that links to the FTP server. I’ve set it up myself, and it works, but I find the direct USB connection more convenient, faster and easier to use. Full directions available at the Android Police website.

Last two approaches tomorrow.

Convert Scanned/Digital Map Images Into Offline Android Format With MAPC2MAPC – Part II

Continued from Part I, Part II is a walkthrough of converting a calibrated map or aerial image into an Android-app-friendly format.

There are a number of ways to get calibrated maps and aerial photos that MAPC2MAPC can convert to Android-app friendly format.

– GIS/mapping programs can usually export maps into “raster”/digital formats that MAPC2MAPC can use. These can also display GIS vector data like shapefiles, then convert it into a compatible rasterized format. This is useful since there currently aren’t any good Android apps that can directly display such vector data.

– Some US state and government agencies provide easy online access to calibrated scanned maps and aerial imagery. Data for the US is particularly easy to find:

For this walkthrough, I’m going to download an aerial photograph and topographic map for my neighborhood from the USGS Seamless Server Site.  I won’t go through the exact details of the process (there’s a tutorial on using the Seamless Server available at that site). But I will point out that when you select a data type for downloading, the Seamless Server will conveniently tell you the projection and datum the data is in, which you’ll need for MAPC2MAPC. Here, both the aerial imagery and topographic map are in the UTM projection, Zone 12N; however, the aerial imagery is in the NAD83 datum, while the topo map is in the NAD27 datum:


If you miss it there, or can’t find it, the downloaded zip file will include a .prj text file that has this information, and which can be opened in any text editor:



The two files you will need for use with MAPC2MAPC are the image file (with the .tif file extension) and the “worldfile” with coordinate calibration data (.tfw file extension). In the MAPC2MAPC program, choose File => Open Calibration. In the lower-right corner will be a drop-down menu that lets you select the type of calibration file you’re using from the ones that MAPC2MAPC supports; here, I’ll choose “World files”, then select the .tfw file.


Because worldfiles do not contain map projection/datum info, MAPC2MAPC will prompt me for projection/datum info:


From the Seamless Server or PRJ file, I know that the image is in the UTM coordinate system, Zone 12; the numbers in this listing box represent the UTM zones. If it were in a different coordinate system, I could scroll in the box and see if it was available at the bottom; MAPC2MAPC currently supports about 22 additional coordinate systems along with UTM. If I didn’t find it, I’d have to recalibrate the map manually using one of MAPC2MAPC’s built-in utilities, or a separate program (see post I for more info on datums, projections and map calibration). The default datum for MAPC2MAPC is WGS84; if the map is in a different datum (NAD83 in this case), I click the “Not WGS84” button, and choose the correct datum from the next window:


If successful, you should get a screen that looks something like this:


Now the map image can easily be converted into the Android-app-friendly format. In this case, I’m converting it to TrekBuddy format, so File => Write map as Trekbuddy files converts the original calibrated map image into the TrekBuddy-compatible format.. You’ll find the generated map files in a subfolder located in the same directory as the original image file, with the same name as the image plus “_tiles” appended. The other Android-friendly format MAPC2MAPC supports is the “Mobile Atlas” format; you’ll find that export function in the File menu as well.

The mapset and tiles will be in the uncompressed TrekBuddy format, as MAPC2MAPC doesn’t currently support the compressed tared TrekBuddy format. However, there’s a free Java utility called jtbtar that can convert the uncompressed mapset into a smaller compressed one. Run jtbtar, select the folder with the map tiles, click on “Pack Map”:


And jtbtar will create a compressed .tar file and .tmi file containing the mapset data.

For this example, I didn’t actually notice any substantial space savings by going through this process. However, copying a large compressed file from your computer to your Android unit takes far less time than copying many individual tile files. The process of copying the data over to your Android unit is the next topic on this blog; there are several options, each with advantages and disadvantages.

Convert Scanned/Digital Map Images Into Offline Android Format With MAPC2MAPC – Part I

The previous two posts (one,two) have been on Mobile Atlas Creator (MOBAC), a program that can download map data from online services, and convert it into offline formats compatible with some Android map apps. But MOBAC can’t process your own scanned maps, or digital maps / aerial photographs you’ve downloaded off the web.To do that, there’s MAPC2MAPC, a free image conversion program (Windows only) that can turn stand-alone digital map images into several Android-app-compatible formats. Note: The latest version of MAPC2MAPC is no longer free; you might still be able to find the older free version on the web if you search a bit. But to fully understand how to use it, you’ll  need to know some basics about how digital map images are calibrated, i.e. how do you know which geographic coordinates are associated with each individual pixel element in the image.

Broadly speaking, digital map images can come in one of two formats:

Uncalibrated. Just a basic digital image with no information about which geographic coordinates go with which pixel.

Calibrated (aka “georeferenced” or “registered”). A digital image that comes with basic geographic coordinate calibration data, either embedded in the image file itself, or in a separate file, often plain text,  that can be loaded in with the image to tell the program what location each pixel is at.

For both kinds of maps, you’ll also need to know two more pieces of information that describe how the maps was drawn:

– The map’s “projection”. Maps are flat representations of the earth’s curved surface, and the projection describes geometrically both how they are flattened (in a manner usually designed to minimize distortions from the flattening process) and also the coordinate system that assigns a set of numbers to every point. Examples of projections include Universal Transverse Mercator (UTM) (which uses meters for coordinate units), Lambert Conformal Conic (also meters), and equirectangular/Plate Carree (which uses meters).

– The map’s “datum”. A datum is a set of equations that describes both the curvature of the Earth, and also the zero-zero reference point for coordinate systems. As technology has improved, the accuracy of the datum has also improved, which means that positions given in older datums may be a long distance away from the same position in a modern datum. Examples of datums include WGS84, NAD27, and ED50.

Uncalibrated maps will, by definition, lack embedded information about the projection and datum used to draw the map. MAPC2MAPC has a calibration utility that lets you calibrate the map for a limited number of projections (and a larger number of datums); this will also assign geographic coordinates to every pixel. If your map was created with one of those projections, you should use that one to calibrate your map; you will commonly find the projection and datum printed somewhere on the map, often at the bottom near the map title and scale. If the projection is not defined for your uncalibrated map, or it’s drawn in an oddball calibration, using/choosing the wrong projection can result in a distorted and miscalibrated map. MAPC2MAPC includes utilities for this that requires more calibration points, but can “warp” the map into an acceptable shape. One of those utilities lets you select points in Google Earth, and use those for the calibration process. Check the readme.txt file that comes with the MAPC2MAPC program for more info on these functions. There are also a fair number of free programs that can geographically calibrate an uncalibrated image (“georeferencing”); you can find a list of them here.

For many uncalibrated map images, though, the easiest way to calibrate the map for use in MAPC2MAPC might be to create a Google Earth image overlay file in KMZ format, then load it into the program. MAPC2MAPC accepts these KMZ files as input, and if created successfully, they’re already fully calibrated in the equirectangular/Plate Carree projection, WGS84 datum. You will likely find that most maps can be calibrated reasonably well using this process, although not all. Check out this tutorial by Garmin on the process for creating a KMZ image overlay (note: unlike images destined for Garmin units, it doesn’t have to be in JPG format, and it can be up to 100 million pixels in size). You might also check out this YouTube video tutorial and associated linked tutorials on the right of the video’s page.

For calibrated maps, the geographic coordinate data will always be included somehow in a calibration file. For some types of calibrated maps, the projection/datum information will be included in the calibration file, while for others, you’ll have to specify it. If full projection/datum data is needed for any calibration file, it will be requested by the program. Types of calibrated map files accepted by MAPC2MAPC include:

  • World files (.tfw, pgw, jgw); these always require projection and datum information
  • OziExplorer .map files; these usually have projection/datum information embedded within them
  • Google Earth overlay files (KMZ); these are implicitly in a known projection/datum
  • … and a bunch of less common ones(e.g. gux, gmi, jpr, etc). Not fully familiar with these formats, but I believe some of them have full calibration/projection/datum data, while others only have calibration data.

The MAPC2MAPC website has PDF documentation of how to load a calibration file for a USGS topo map with a tfw world file obtained from a site like LibreMap; by following this, you’ll get a feeling for how to load similar calibration files.

Tomorrow: Some sources for calibrated maps and aerial imagery, and a walkthrough on downloading and converting a calibrated aerial photo into an Android-app-ready map with MAPC2MAPC.

Creating Offline Maps For Android Apps With MOBAC – II

Continuing on from the previous post, I’m going to create a mapset atlas using Mobile Atlas Creator (MOBAC) for offline use with a compatible Android application. An “atlas” can contain multiple mapsets of data from different sources, covering different areas, and with different data resolutions. I’m going to create an atlas with mapsets using:

  • OpenStreetMap road maps
  • Microsoft aerial maps (“Virtual Earth”)
  • USGS topographic maps

I’ll start with the OpenstreetMap maps, by selecting that map type from the dropdown menu, and also select the area I’m interested in. The first step is to choose the zoom levels I want data for:


Higher zoom levels correspond to a higher resolution, but this will also require more map tiles to be downloaded for a given area; lower zooms are lower resolution, but cover much more area. For aerial photos, you might want to get the highest possible resolution => high zoom, whereas for street maps, lower resolution may be adequate => low zoom. As you click on zoom levels, you’ll get a running total of all the map tiles that will need to be downloaded. Since you can also have multiple mapsets in a single atlas, each containing different kinds of data covering different areas,  you could have a lower-resolution road mapset covering a larger area, and then have a high-resolution aerial photo mapset covering a smaller area. Sometimes there’s no data for the zoom level you’ve selected. The area I’ve select is fairly small, and I’ll used it zoomed in close, so I’ll check the 15 and 16 zoom boxes.

The next section in the control panel lets you combine and modify the original data tiles into a different size and/or image format; unless you have a good reason to, you should leave these advanced settings alone:


Next is the Atlas Content definition section:

Atlas Content

First step is to give my atlas a name by right-clicking on it and choosing “Rename”; I’ll call it “KV” here (hit return to save the name). Next, I want to give a name to the mapset with the OpenStreetMap maps; I’ll call it “OSM in the “Name” section, and add it to the atlas with the “Add selection” button; this section now looks like this:


I now repeat the process for Microsoft aerial data and USGS topo maps by:

  • Choosing the map source
  • Choosing the zoom levels
  • Giving the mapset a name, and pressing “Add selection”


Next, I need to select the type of map data I’m creating, based on the Android app I’ll be using it with. In this example, I plan to use the data with an app called “TrekBuddy”, so I select that type:


“tared” means it’s compressed into the .tar format; there’s an option for untared, but compressed will save on space and number of files.

Now the atlas is ready for creation; click the “Create atlas” button, and MOBAC will start downloading map tiles and assembling them into the atlas:


Once completed, you’ll find the atlas files in a subdirectory of the “Atlases” directory (default location for “Atlases” is the directory that the MOBAC program is in, but you can change that in the program Settings). The subdirectory be named using the atlas name, with the date and time of creation appended to it. You’ll need to copy the appropriate map files for your app to the appropriate directory on your Android unit, possibly renaming them as well; more on this in upcoming posts.

As map tiles are downloaded, they’re saved in a special cache, so if you need them again they won’t have be downloaded afresh. The Tile store coverage control can show you what areas have map tiles for a particular map type and zoom level:


The Settings section lets you:

  • Set the distance unit (metric/imperial)
  • Choose which map sources to show in the dropdown, and set the program language
  • Set an expiration date for downloaded and cached tiles
  • Show you how many tiles are cached for each map type, and how much space they’re taking up
  • Set maximum map size allowed (different programs may have restrictions on this)
  • Set the default storage directory for atlases
  • Configure network connections.

There’s one final section that lets you load a GPX file, create waypoints on the map, and export them in standard GPX format – pretty straightforward to figure out.

I’ll review TrekBuddy soon, and use these maps for the demo. But next up, another app that creates mapsets for Android apps, but this one uses scanned map images and aerial photos instead of online map services.

Creating Offline Maps For Android Apps With MOBAC – I

Some Android apps can download and store cached map data from online data sources like Google Maps and OpenStreetMap servers. I’ve already posted about a few of these:

.. and expect to post about many more of them in the future. But in-app caching has limitations:

  • Map sources are limited to online map services
  • Map variety is usually fairly limited
  • Map selection process is limited by the size of the Android unit
  • Issues with download speed and bandwidth caps (WiFi and cellular data connections)

There are also a fair number of Android apps that don’t cache map data directly, but instead use offline mapsets created with desktop software. While perhaps less convenient than direct in-app caching in that they require you to prepare the mapsets on a desktop and then transfer them to your Android unit, they have some significant advantages:

  • Desktop interface usually offers more options, and is easier to use
  • Choice of online map servers can be larger
  • Map management is somewhat easier
  • In addition to online map sources, you can also create mapsets from scanned maps, aerial/satellite photos, and output from mapping software (GIS)

I’m going to be posting on a number of these offline mapset apps in the coming months. Some of them have their own custom mapset creation software, and I’ll cover those separately. But there are several free programs out there that can create mapsets for more than one of these apps, and I thought I’d cover a couple of these first before moving on to the apps themselves. After all, the apps aren’t worth that much without usable maps already in hand.

The first program I’ll be looking at is Mobile Atlas Creator, aka MOBAC, which downloads map tiles from online map services, and converts them into an app-appropriate format. This is a Swiss army knife app, as it creates offline maps not only for a fair number of Android apps, but also for programs that run on Windows, Windows Mobile and Symbian platforms, and even some standard handheld GPS units from Garmin and Magellan. It’s a Java program, so it should run in Windows, Linux and OS X; Java 1.6 required (check this at the Java website). While the current stable release is version 1.7, I’ll be looking at the most recent 1.8 beta release.

No program installation required; just unzip the contents into Start the program up using the .jar program file. There’s a separate Window executable in the distribution, but I think that’s just a stub to start up the .jar file. Documentation is minimal. Program screen looks like this:


There are two sections to the program view. The left pane contains program controls, while the larger right pane has the map view. Navigating the map view is a little different than other programs:

  • To scroll the map view, click and drag with the right mouse button (not the usual left button).
  • Zoom in and out using either the zoom control at upper left, or with the mouse wheel.
  • Use the left mouse button to select an area you want to download map data for. With the grid control at upper left “disabled”, you can freely select any area. With the grid enabled for a particular zoom level, a red grid is laid on top of the map, and selection is automatically “quantized” to full grid squares:



You have to select grid squares in adjacent groups by clicking and dragging; you can’t turn on/off individual squares separate from the rest with Alt-click or Ctrl-click, as you can with some other similar mapset programs (e.g. Garmin’s Mapsource).

The control panel consists of a number of discrete sections, which can be minimized/maximized by clicking on the blue arrows. First section displays the area you’ve selected at right:


You can also enter coordinates manually, then press the “Select entered coordinates” button to refresh the selected area.

Next, there’s a dropdown menu with a list of preprogrammed map sources:


There are currently 56 map sources in this list, some of which cover all of the world, others which are only good for limited areas (and some, like the server, that don’t seem to be currently working at all). Using the Settings section, you can choose to turn off mapsets that you’re not interested in, as well as update the map sources:


You can even add your own map services, though the process is a bit technical, and requires that the map tiles be in a very specific format. Most of these map sources are freely redistributable, and aren’t limited by licensing terms. For some of the commercial sources, (Google Maps, Microsoft/Bing), it’s not clear. In my post on MultiMap, I noted that caching of map tiles is allowed by Google under certain circumstances, and I thought that MultiMap met those restrictions; for MOBAC, I’m not so sure. Bing’s map licensing tends to be a bit looser than Google’s, but even there I’m not sure. Consult a lawyer.

Next post: Creating a mapset for use with an Android app.

MultiMap: Online And Basic Offline/Cached Maps For Android

Application Name: MultiMap

Description: Online map display with GPS tracking; caching of online data for offline use.

Publisher’s website: RadonSoft

Cost: Free; 2 Euro Pro version adds search, messaging and position sharing.

Version/date reviewed: v.2.1  /  9-1-10

Phone/OS: Droid X / Android 2.1


Android market link (mobile apps)
Android Market (browser)

MultiMap is a basic map viewing application, with the ability to both load map views directly on-the-fly if you have a data connection (WiFi or 3G), and to download map data to cache memory on your unit, so that you can use the map data even if you have no data connection. Current map types supported are:


  • Google Maps (Standard (roads only), Satellite, Hybrid, Terrain)
  • OpenStreetMap
  • OpenStreetMap OSMA
  • OpenCycleMap
  • OpenPisteMap (enhanced coverage of skiing areas)
  • Public Transport DE (German public transport)
  • OpenSeaMap
  • OpenOM Street
  • OpenOM Pseud

Select the map type with Menu => Map Mode. The OpenStreetMap/OM maps use similar data, but there are differences in the types of data shown and the map styling. For example, OpenCycleMap show contour lines, OpenPisteMap shows ski trails if you’re in a ski area, and OpenOM Street/Pseud has no labels. Here are shots for my neighborhood (Figure 1):

OSM OpenStreetMap / OpenSeaMap OSMA
OpenOM Street / Pseud

Controls are straightforward – touch and drag for scrolling,and three options for zooming:

  • Double-tap to zoom in
  • Tap once on the screen, and zoom buttons will show up at the bottom of the screen
  • Standard two-finger pinch/spread-to-zoom if your hardware supports it

If you have it set (Menu => Settings), your current position will show up as a blue dot; you also have the option to have the display show you in the center of the screen when your position updates. If you’re scrolling the map to a different location, you should turn this off, as the program has a tendecny to zip the display right back to your current location. After zooming with a double-tap or finger pinch, I’ve noticed that the current position indicator can be in the wrong spot; zooming in/out with the zoom buttons usually resolves that problem.

Map caching takes place automatically for map tiles displayed when you’re using the app in online mode, but only map tiles at the current zoom level will be saved. If you have cached map data for your current position, MultiMap should use this first, even if you  have an online connection.


Figure 2: If you want to cache map tiles with multiple zoom levels for use when you’re offline, or to reduce cellular data use, MultiMap makes it easy. Select the map type you want to use (Google Sat for this example). Scroll to the area you’re interested in, preferably in low-zoom mode to see the largest area possible. Choose Menu => Cache Data, select the area you want to cache by touching and dragging, then press the back key


Figure 3: MultiMap will come up with resolution options for the map you’ve chosen. Whatever resolution you do choose, MultiMap appears to download tiles for that resolution and all lower-resolution tiles as well. So if I chose “3 meter”, it appears to download “3 meter”, “5 meter”, “10 meter” etc., all the way down to “60 meter”. The higher the resolution, the more tiles will be required, and the longer it will take. For road maps, “3 meter” or even “5 meter” should be more than fine; for satellite imagery, choose the lowest resolution you can live with. And I’d recommend you do all this caching when you’re connected via high-speed WiFi, as this can take forever with 3G, and burn up a lot of your data quota.

There’s no question that the OpenStreetMap data is fully legal to use this way. For the Google data, I’m not as sure, but I think it is. The Google Maps Terms Of Service says that caching data is fine as long as the cached data is only used in a manner similar to how it’s used uncached. I would interpret MultiMap’s use of the data as falling under this limitation, so I think it’s OK. Certainly Google hasn’t pulled this app (and other similar caching ones) off the app market for TOS violations. If there’s anyone with an alternative view, freel free to leave it in the comments.


Figure 4: After you use the program for a while, cached data is likely to accumulate. The program lets you clear out the cache, either completely, by data type, or by the date it was cached.

Other Issues:

  • Program can sometimes misplace your current position after a zoom with finger-pinch or double-tap; using the zoom buttons will usually fix this issue.
  • Program sometimes gets hung up and shows a blank map even if it’s online or has cached data; you’ll have to exit/restart to see the map data.

Final thoughts:

If you’re looking for lots of extra features, and a wider variety of map types, this isn’t the program for you – it has a pretty basic feature set. But what it does, it does well, and it’s incredibly easy to learn and use. Recommended.

BackCountry Navigator – Offline Topo Maps And Aerial Photos For GPS Navigation

Application Name: BackCountry Navigator

Description: Topographic maps, GPS navigation.

Publisher’s website: BackCountry Navigator

Cost: $9.99; 15-day demo version available

Version/date reviewed: v.1.0  /  8-13-10

Phone/OS: Droid X / Android 2.2

Android Market (mobile app only)
Android Market (browser)

BackCountry Navigator can download and display maps and aerial photos from a variety of different  sources:


  • USGS 1:24K topographic maps, both in their original form and updated/terrain-shaded from
  • USGS 1-meter color and black & white (DOQQ) aerial photos
  • OpenStreetMap road maps
  • Landsat color satellite imagery (30-meter resolution)
  • Topographic/aerial maps from Italy, Spain, Australia and Canada

If you have a good Internet connection, BackCountry Navigator will download/display maps on the fly. But it also lets you select an area, and then downloads those map tiles for use during times when your unit is offline.

Figure 1: Here’s the starting screen, with the excellent US topo maps shown. A good part of the display at the bottom is taken up with demo info that will disappear if you buy the program; but even so, a lot of the maps is obscured by screen info and controls. You can expand the view to a “full-screen”  option from the program menu, but even there, you only gain a bit of space at the top. I’d like to see the option of turning off unwanted controls, or having them only appear if you touch the screen, the way Gaia GPS handles them.The default view is with the GPS off, and the only way to turn it on or off is through the menu button; it would be nice to have a GPS on/off button onscreen. Also, that on-screen green arrow is only there to mark the north direction, not your actual position. The green arrow might be useful if you set the program to have your current direction of movement be up on the screen (where the map rotates to match your orientation), as it will give you a solid North reference. But if you have the map always set so that North is up, as I usually do, it doesn’t really serve any useful function, and obscures part of the map.

The controls at upper-left are for selecting an area of the map for downloading for offline use; I’d prefer to see those accessed from the menu, since you won’t be using those a good part of the time. The blue button at the upper-right moves you to successive screens, like the Compass and Trip Computer screens:


Figure 2: On the Compass screen,the outer dial of the compass can be rotated with your finger to get a bearing, but I don’t understand why there isn’t a simple digital readout that gives you your true compass heading without you having to spin the dial.


Figure 3: The Trip Computer is nice, though I’m hoping additional options will be added (e.g. time of day, distance traveled).


Figure 4: Selecting an area to download offline maps for is straightforward.  Press the “Sculpt Map” button at top right (the map square with the green arrow on it), then click and drag in the map area to select the desired map you want maps downloaded for. Click the map square with the red “X” to de-select the area, and start anew.


Figure 5: When you’re ready, click the folder-with red-arrow icon to download the maps; you’ll get this screen that lets you select what kind of maps to download, and what zoom levels. The higher the zoom level, the more detail the map will have.Download times will depend on the zoom level selected (higher zooms mean longer times), the map area (larger is longer), and the responsiveness of the map server. Some servers, like those for standard USGS topo maps and black-and-white aerial photos, tended to hang during the download.


Figure 6: When the GPS tracking is turned on from the main menu, the controls at upper left change. The red flag lets you record a waypoint at your current location, and brings up a screen that lets you enter waypoint parameters.


Figure 7:  But while you can change a waypoint position by modifying the coordinates, you can’t create a waypoint at a different location directly on the map screen, a major drawback.

The blue arrow (in Figure 6) brings your current position into the center if you’ve scrolled the map to a different location; the red button starts recording a track, and the blue button that appears during track recording turns it off again. In order to record any data, you have to have started a new trip file, or loaded a previous one, from the Menu => GPS Data options. There are instructions on the website on how to transfer a GPX file to your Android unit, and import that data into a trip file, but I was unsuccessful when I tried this – the import would just hang. And, as of yet, you can’t export data from this program into either GPX or KML format for use with other programs, which is a big minus.

Here are some examples of other maps available for viewing and download with this program:

US aerial Italian topo Canadian topo Australian aerial/road

Other Issues:

The biggest problem I ran into with this program was that it crashed pretty much every time I used it out in the field, invoking the “Force Close” error message. This is a big problem if you’re recording a track or other data, as you lose everything you’ve recorded up to that point. These problems can often be unit-specific, so you might have better luck with yours. There also doesn’t seem to be a way currently to delete saved files to free up space; one you download a map file for offline use, you’re stuck with it taking up space even if you don’t need it anymore. I’d also like to see alternate coordinate systems/datums as an option, specifically UTM, since it’s often used in mapping.

Final Thoughts:

There’s a lot of useful features in this program I really like, like the US color aerial photos, and the topo/photo data from other countries. But at least on my phone (Droid X), the regular crashing of the program renders it unusable; you should check it thoroughly on your system with the 15-day demo to make sure it doesn’t do the same. And the current inability to export tracks and waypoints collected with this program is a major drawback. From the publisher’s website, it’s clear that he’s working on adding more features and fixing bugs, and I’m sure this program will become better with time; I expect to revisit it in a few months to see how it has progressed, and may change my opinion of it. But for now, I can’t recommend it, especially at the current price; I’d recommend Topo Maps/Gaia GPS as a better and cheaper alternative for those in the US who only need topographic maps.

Topo Maps (aka Gaia GPS): Online/Offline USGS Topo And OpenStreetMap Maps

Application Name: Topo Maps (aka Gaia GPS)

Description: Topographic maps, OSM maps, GPS navigation.

Publisher’s website: Gaia GPS

Cost: $7.99; Free limited Lite version available (with ads)

Version/date reviewed: v. 1.4  /  8-17-10

Phone/OS: Droid X / Android 2.2

Topo Maps (paid)
Android market link
Android Market (browser)

Topo Maps Lite
Android market link
Android Market (browser)

This is a port of the iPhone application Gaia GPS; the Android app is labeled “Gaia GPS”, but it’s listed as “Topo Maps” in the Android Market.

This application lets you upload and view USGS topographic maps and OpenStreetMap/CloudMade imagery in both online modes (loading map data on the fly), and offline modes (where you select map areas, and the imagery is cached for offline use). Map data loaded in online mode is also cached on the fly for offline use (up to 1000 tiles), so if you’re in an area where connectivity drops in and out, you won’t lose the map view. The Lite version limits the number of cached tiles to 50, which can cover a surprisingly large area; it also comes with ads. The full paid version lets you cache up to 10,000 tiles, which can cover a huge area. It also does GPS tracking, saves waypoints, and comes with a digital compass heading readout.

Map types available for download currently include:

  • USGS topo maps from; these are terrain-shaded, and look very good. But don’t expect road data to be fully up-to-date on these; some of these maps haven’t been updated in 30-odd years. In US National Forest areas, the update USFS topo maps are used, and these were updated as recently as 10 years ago. You’ll see a sample of this in the descriptions below.
  • Five different map styles all based on OpenStreetMap data, which should have more up-to-date road data than the MyTopo maps. Because they’re all generated from the same data, it’s likely that you’ll only wind up using one or two of these on a regular basis. Unlike the MyTopo maps, which never had a problem download success with these CloudMade/OSM maps was spotty – sometimes they downloaded quickly, other times they took a while.
Cloudmade Topo
OpenStreetMap Road
Cloudmade Road
Cloudmade Shaded

Figure 1: Samples of OpenStreetMap data. An alternate type of imagery, like USGS aerial photography or Google Maps views, would be a nice option to have.


Figure 2: You can set up the interface to be completely open and clutter-free, which is a nice touch. After you get a GPS lock, the orange arrow will show your current position.


Figure 3: Tap on the screen, and zoom in/out buttons will show up at the bottom. You’ll also get green arrows; tap on those, and you’ll have the option of displaying both your current coordinates at the bottom, and additional controls at upper right. To get rid of those again, just tap on the screen, then tap on the green arrows next to those on-screen displays. Coordinates supported include latitude/longitude, UTM, and MGRS, all in WGS84 datum.

The on-screen controls at upper-right will:

  • Switch you into tracking mode (the bullseye pattern), where your position stays in the center as you move, and the map scrolls to keep you there. You can scroll the map manually by dragging, and this disables tracking mode until you press that control again.
  • Set waypoints with the flag icon (more below)
  • Choose the map type to display with the map icon; you’ll get a radio button list of available map types.


Figure 4: The latest version adds a digital compass bearing readout to the screen, which is a nice addition; you can turn this off in the Settings section if you want. It works best when you’re standing still; when you’re moving, the direction reading can become very unstable. The ad-supported Lite version blocks a fair amount of the screen at the bottom, though the coordinate display is still available.


Figure 5: Pressing the waypoint flag icon brings up three choices:

  • Drop Pin – you scroll the map until the pin is where you want it, then set it at that position.
  • Drop Pin Near Me – drops a pin at your current location, and lets you set a name for that waypoint
  • Save My Location – Similar to “Drop Pin Near Me”, but saves a waypoint labeled “My Bookmark” with the date and time automatically appended, instead of you having to name that point.


Figure 6: From the menu, you can access the Download Map section to cache map tiles for offline use. This is available for all map types except Cloudmade Topo, which is a shame – that would be a useful type for areas outside the US where topo maps are hard to come by. You select the area you want to cache maps for by tapping and dragging; you’ll also need to select the highest zoom level you want maps for. Higher zooms mean better detail, but also require more map tiles to be downloaded.

Once an area is selected, you’ll enter a name for that downloaded map area, and optionally some notes. If you don’t need the map in the future, you have the option of deleting it, as well as deleting all map tiles cached during online use.

Other Issues:

The porting over from the iPhone version is still going on, and there’s a list of features that will be added in the near future on the website. You should check this to see whether any features you need will be added soon. For me, the major features still not in place include no track recording and no track/waypoint import or export, which severely limit this program’s utility.

I didn’t have any issues with program crashes or force-closes. However, sometimes the program will stop tracking your position on the map. Choosing the “My Location” mode from the menu, or turning tracking mode off and on will bring your screen position icon to the right spot, but the program sometimes doesn’t resume tracking after that; the only option is to exit and then re-start the program. Hopefully this will get fixed soon. As I mentioned above, MyTopo map tiles always downloaded reliably, but CloudMade and OpenStreetMap tiles wouldn’t always download as quickly. I also find it annoying that, like some other programs, Gaia GPS insists on loading itself into system memory on startup. As far as I’m concerned, unless it’s some kind of utility that needs to run continuously, no program should load itself into memory until the owner manually starts it up; when it exits, it should unload itself completely.

Final thoughts:

I like the program’s clean interface, and generally it works well. The current feature set is a little light to justify its current high price; I’d like to see the authors price it more reasonably now, and increase the price as the feature set improves. There are free programs that can do similar things, and I’ll be covering some of those in the near future. But those free apps usually require quite a bit of work to prepare topo maps for offline use, and Topo Maps / Gaia GPS simplifies that process tremendously. Overall, I would recommend at least trying out the free Lite version, and keep track of additional features being added. Personally, even though I have a full-featured demo version supplied by the publisher, I expect to buy a copy of this program in the near future for my own use.

Online Vs. Offline: The Android GeoData Conundrum

At the time this post is being written, virtually all Android devices being sold and used are mobile phones. Most of these mobile phones come with data plans that can stream data (3G/4G) on demand; they also  come with WiFi capability, so that you can get equivalent data directly off a wireless network. But what if you’re in an area that doesn’t have cellular data coverage or WiFi? For geodata, that can be a big problem.

1. Many commonly-used geographic apps, like Google Maps, Google Earth, Google Navigation, Layar, etc., require that a data connection be present to work. You can check this yourself by shutting off wireless data connectivity completely on your Android unit. Set it into “airplane mode” to turn off the cellphone connectivity, turn off the Wifi as well, then start up Google Maps. You may see a part of a map leftover from the last time you used it, but that’s it; zoom in/out, or scroll to a different area, and nothing will show up. You’ll eventually get an error message saying that the app can’t connect to the network.

Most people will spend most of their time in an area where some kind of wireless data connectivity is present. But if you check out the coverage map for Verizon, generally considered the carrier with the best overall coverage, you can see that there’s still a fair amount of the country that doesn’t have coverage, especially west of the Mississippi:

Zoom in closer, and you’ll see pockets of missing coverage even in areas that look completely solid above. Many of those area will never get decent data coverage, either because they’re too sparsely populated, or because topography/access makes coverage difficult to impossible to achieve. In those areas, online geodata will probably never be available, and your Android unit won’t be able to use geographic apps that require online access.

2. Phones had dominated Android unit sales up to now, but Android slates, tablets, media devices, etc. are coming soon. While some of these will have 3G/4G connectivity options, others won’t; that reduces their data connectivity coverage footprint to just those areas where they can get a WiFi connection. Adding 3G/4G  connectivity can be expensive, $25-30 a month, exceeding the cost of the hardware over its lifetime. So are those units going to be limited to only having geodata available only where there’s WiFi? If so, their utility as mobile geography tools will be severely crippled.

3. Finally, some wireless data providers are looking at limiting data bandwidth; ATT has already capped monthly consumption at 2 GB a month, with massive charges if you run over, and Verizon has long been rumored to be looking at similar caps. If you’re downloading large amounts of geographic data over such connections, like aerial imagery, you could easily bump up against those limits. WiFi downloads won’t have those limitations, but if you’re going where there’s no WiFi, that’s not a big help.

The solution is obvious – the ability to store data for an area so that it will be available even if there’s no connection. In other words, “data caching”. That way, you could download large amounts of data for a specific area over a fast, cheap WiFi network, and then access it quickly in areas that either have no connectivity, or connectivity limited by bandwidth caps. I think the master vision of Google and the wireless companies is that we’ll always be connected, and therefore this won’t be an issue. But that’s not the case right now, and I doubt it ever will be. I hope that data caching will be added to apps like Google Maps and Earth that currently lack it, but I haven’t seen any signs of that coming soon.

However, there are already a number of Android apps currently available that can cache online map imagery for later use offline; other apps can take map data converted into special formats, and use it offline. I’ll be reviewing a fair number of those apps over the coming months, starting next week with reviews of two apps that cache topographic and OpenStreetMap data for offline use. They have limitations, and the range/types of data available through these offline apps doesn’t match that of online apps, but they make Android units geographically useful in places where they’d otherwise be useless.

While I’m on this topic, a tangential word of warning. I’ve been reading the specs of a number of Android devices slated to come out over the next six months, and most of them include “GPS”. But their definitions of what constitutes “GPS” seem to vary. With true GPS, they’re picking up signals from GPS satellites, and converting those to a location; these will work anywhere in the world, regardless of whether the units have access to wireless signals. But for some units, if you dig deeper into the specs, the manufacturers talk about “network GPS” or “antenna GPS”, where location is determined by how close they are to wireless hotspots or cellular base station antennas. This technique is a useful adjunct to true satellite GPS, especially in urban areas where satellite visibility can be blocked by tall buildings. But it’s not in any sense an acceptable substitute for true satellite GPS, and shouldn’t even be called “GPS”. Not only is it far less accurate than true GPS even in the best case, it doesn’t work at all if you’re out of range of the cellphone network or hotspots. If the specs say “assisted GPS”, that’s probably OK, but you should still read the fine print. True assisted GPS is a augmentation to satellite GPS: proximity to a cellular antenna is used to narrow down your initial location, and provide information that lets your unit pick up satellite data more quickly. But I’ve also seen “assisted GPS” used to describe units that pick up location data from antennas/hotspots; once again, not acceptable. If you want to record geographic data with your Android unit, accept no substitutes – only buy Android devices with true satellite GPS that works anywhere. End of rant.