blankblank blank

Archive for the 'online maps' Category

Locus, A GPS Mapping Application – Part II: Maps

Continuing on with my review of the Locus GPS mapping app for Android (Part I on the interface is here), today is map day. Locus has a strong selection of standard online map sources, roughly 30 vs. roughly about 20 for OruxMaps. Some are worldwide, others regional. These mapsets currently include:

  • Google Maps: Road, Aerial, Hybrid, Terrain, Korea
  • OpenStreetMap” Classic, Cycle, Transport, Osmarender, OpenPiste
  • OVI-Nokia map:Classic, Satellite, Terrain (Locus is the only app I’ve seen so far with these useful mapsets)
  • Yahoo: Classic, Satellite
  • Bing: Road, Hybrid, London A-Z, OS Maps
  • OSM-regional: UMP-pcPL, Hike&Bike
  • Freemap (Slovakia): Car, Turistic, Cyclo, Aerial
  • Yandex (East Europe): Classic, Satellite
  • Eniro (North Europe): Classic, Aerial, Nautical, Hybrid
  • MyTopo (USA): 1:24K topographic maps
  • Outdoor Active (Germany, Austria, South Tyrol)
  • Statkaart (Norway): Topo, Raster
  • Maps+ (Switzerland): Topography, Terrain
  • NearMap (Australia): PhotoMap, StreetMap, Terrain


While there is a reasonable amount of overlap in mapsets between the two, each one also has unique mapsets as well. For US users, the big difference is that Locus comes with the MyTopo USGS 1:24K topographic mapset built in, while OruxMaps doesn’t. You can add Terraserver topo maps to OruxMaps (more on this in a bit), but the MyTopo set is of higher quality, and some areas are more up-to-date.


The list of available online maps can be brought up with the map manager button, in the upper right of the main map screen. You’ll get a list of available online mapsets:


Mapsets are organized into groups by source, a better system than OruxMaps’ sequential list of all maps. If you tap on a source name, like Google …



… you’ll get a subset listing of all the available maps from that source. Tap on the map type to go back to the map view, and load that selected mapset. The listing scrolls horizontally, so if you can’t see the desired mapset, tap and drag the listing left or right to access it.

First time I tried using Locus in the field, I was shocked at how many mapsets I was unable to download, despite having a good cellular connection. Then I explored the Settings section; under the Map subsection of Settings, you’ll find  a setting called “Offline mode”. If this is checked, which appears to be the default, maps can only be downloaded to your unit when you have a WiFi Internet connection. This protects you from being surprised with massive data overage charges from your cellular provider if you don’t have an unlimited data plan; my plan is unlimited, so I left this unchecked, and all mapsets now downloaded properly.

As online maps are downloaded, either from a WiFi or cellular connection, they are automatically cached so that you don’t have to repeatedly download them. I presume the size of the cache is limited, and that older maps are deleted automatically, but I wasn’t able to find out this info. For longer-term storage of mapsets, and avoiding large data downloads over cellular connections, Locus lets you create mapsets from download data, and then load them as needed into the app.


To access this function, go to the “Download map” tab in the map manager. You’ll have several options for selecting the area you want maps for:

  • This screen – Downloads maps for the area currently visible in the main map screen. You’ll want to zoom in/out first to your desired area.


  • Select area – Choose a subset of the current map area by clicking and dragging; press on the green check button at the bottom to approve the selection, or the red x button to clear it and select a different area. You can zoom in/out in this view, but if you haven’t already selected the desired general area first, new map data will not be loaded in as you zoom in/out.
  • By state – Downloaded predefined areas. By “state”, this means “country”, not “US state” or other subregions. Fine for smaller countries at lower zoom levels, not great for larger countries.



  • By path – This is pretty slick. Select this option, and get the map screen, with a new toolbar near the bottom. Click the “+” sign to add a point at the center of the screen, then drag the map to the next location and add another point. Locus will define an area around that point for which it will download maps, and show that as a purple overlay. You can set the width of the area with the slider at the top, and also tap-and-drag points to adjust them. The “-“ sign removes the last point, while the red x deletes all points. When done, tap the green check box. Be sure to disable the button at the lower-right, as otherwise the map will keep popping back to your current GPS location.
  • Select POIs – If you have a set of waypoints loaded into a category (more on this in the next post), Locus can use those to define an area for maps to be downloaded for. Nice, but I wish there were a comparable option for tracks as well, similar to the “By path” option, but loadable from a GPX file.


Once you’ve made any of your area selections, you’ll get a screen with the available zoom levels for that map; you need to choose at least one. You can choose more, but it will make the map filesize larger; maximum allowable filesize is 2 GB. The total map size and tile count is shown at top right, and you’ll also see a preview of the highest zoom level maps at right. Label the mapset file using the text box at the top.


Tapping “Change type” to choose the type/location for the downloaded map files. You can either put the map tiles into the standard online map cache, create a new separate mapset, or add maps to a pre-existing mapset of the same type. I usually use “Separate map”, since I think it will minimize complications, but that’s just a guess on my part. Once you’ve selected a map type, you go back to the zoom level screen; tapping OK starts the download process. This is usually best done with a WiFi connection, as that will be much faster, and won’t count against any cellular data quotas.



Once complete, the new mapset will appear in a listing under the “User maps” tab; just tap on the mapset you want to select it. Generally, these maps work fine, but I sometimes noticed when scrolling the map that tiles would appear and then disappear for no discernible reason. However, when using the maps in general GPS navigation mode, this didn’t seem to be a problem.

As with OruxMaps, you can also create mapset files from online map sources with the free Mobile Atlas Creator software, setting Big Planet / RMaps SQLite as the output format; the app author has more info here.

So far, Locus is superior to OruxMaps in handling online/offline maps. But it falls short in two major areas:

– Adding new online map sources is more complicated in Locus than OruxMaps (although neither is easy). There’s a post at the Locus forum on the process, but I couldn’t find any actual working examples. In contrast, OruxMaps offers a sample wms_services.xml file to get you started, which adds Terraserver US topographic maps to the list of available maps, and the OruxMaps forum has more working examples.

– OruxMaps has a stand-alone desktop application that can convert georeferenced raster image files, like GeoTiffs and OziExplorer map files, into an OruxMaps-compatible mapset. There is no general tool like that for Locus; there’s a mention in the forum of an old utility that can convert OziExplorer map files, but the format it creates may be deprecated soon in Locus. And it doesn’t look like the utility program mapc2mapc currently creates Locus-compatible map files, either. So there isn’t currently a good way to get your own maps into a Locus-compatible format, and that’s a big drawback for me.

Coming up in part III – tracks and waypoints in Locus.

Locus, A GPS Mapping Application – Part I: Interface

Application Name: Locus Free

Description: Display online/offline maps for your position; GPS track/waypoint display and recording; compass; more.

Publisher’s website: Locus

Cost: Free ad-support version; Pro version ($5.50) removes ads, and add some minor additional functionality.

Version/date reviewed: v.0.9.28  /  3-15-11

Phone/OS: Droid X / Android 2.2


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

I’ve reviewed two other apps that convert your Android unit into the functional equivalent of a handheld GPS unit. TrekBuddy I was less than overwhelmed with; OruxMaps I found to be terrific. I’ll spoil the surprise conclusion here, and say that Locus is not only closer to OruxMaps in quality than TrekBuddy, but gives OruxMaps a run for its money in some respects. In this multi-day review, I’ll compare Locus’s functionality to OruxMaps as appropriate. As with OruxMaps, Locus has so many features that I can’t cover them all, even over the next few days; look at the program’s website, and explore the Settings section, for more info on all of its functionality.



The basic interface for Locus has three toolbars at top, right, and bottom. Unlike OruxMaps, where all toolbars are fully customizable, only the right toolbar in Locus can be modified, and only by checking/unchecking pre-defined options. There are five functions available on the top toolbar. They are:


– An “info” icon, which brings up links to “About application”, a simplified basic guide to using the app, an incomplete online manual viewed in your browser, the version history, and a list of additional apps that can invoke Locus as a helper app.


– Title bar options: tapping on the title bar lets you choose what’s displayed there. In the picture below, coordinates was selected for display in the title bar. One drawback of Locus compared to OruxMaps is that the number of data fields displayed onscreen with the map is far more limited in Locus.


– A GPS icon, which brings up the GPS status screen, with options to turn the GPS and compass on/off to conserve power.


– A data manager, which lets you view tracks/points, import/export data (GPX/KML formats supported), and manage categories. Locus requires you to specify a category label in which to save points and tracks; while I found this annoying at first, I now see the value of forcing you to organize your data by label.


– A map manager, for selecting and managing online/offline maps (more on this later)



Access the right-toolbar options by the Android Menu button, then selecting “Set right panel”; this screen also gives you several other options, most of which can also be assigned to the right toolbar.


The available right-toolbar functions are:

  • Search in POI: This is a saved waypoint search function; there is no general POI database in this app.
  • Move Map: Instantly move the display to an entered address or latitude/longitude.
  • Points: A waypoint list/manager (MOTL, more on this later)
  • Track record: Brings up another toolbar for recording tracks (MOTL)
  • Parking (BETA): Record your current parking spot, with options to set an alarm (useful for timed parking meters), and taking a photo of the location:


  • Share: Lets you send the current map center coordinates, or a screenshot of the current map display, to email, Facebook, SMS, etc.
  • Add new route: Bit misnamed, as it lets you create a new track in the map display; a “route” is a sequential collection of waypoints, which Locus doesn’t seem to have support for. MOTL
  • Compass: Option to switch to compass view, which includes guide information if you’ve selected a POI/waypoint as your destination:


The compass has a long settling time, so it will take a few seconds for the “needle” to move to the current direction. I’d prefer the option to manually adjust this sensitivity, but it’s not too bad. What is bad is that it shows the magnetic direction, not the true direction, as OruxMaps does. I wish I could mandate that every compass app for Android  either have true direction as the only option, or have it as the default with magnetic direction as an option. For many areas, the two will be similar, but in some areas the difference is substantial; where I live, there’s an eleven-degree difference between true and magnetic directions. Hope this gets fixed in Locus in the near future. Now fixed; there’s a new Sensors menu in the Setting that lets you choose True direction (default) or magnetic, and adjust the sensitivity of the compass.



The bottom toolbar has five functions. When the first button is active (as above), and the GPS is on, the map will automatically scroll to your current location. If you tap and drag the map to view a different location while this button is active, it will automatically “pop you back” to your current location in a few seconds.


The second button is a zoom lock/unlock button. When it’s off, you can only zoom in to the native resolution of the map image (or double that, if you turn on “Double sized resolution” in Settings => Map). When it’s engaged, as above …


… you can zoom in well past the native resolution; the above picture isn’t even at the full zoom available, since that would just look like a jumble of pixels.


The third button lets you choose a direction option. “Rotate map” will spin the map so that the direction you’re facing, or moving in, is at the top. This mode drives me nuts as it tends to swing around wildly, so I usually leave it off.


“Show view” displays a “field of view” indicator when you’re standing still, as above. When you’re in motion, the view changes to a triangle/arrow that points in the direction you’re currently moving. Since Locus currently uses magnetic directions, this can be a bit off from the true field of view.

This control is also useful for restoring the map to “North at top”. In the default mode, Locus supports advanced multi-touch, which lets you rotate the map view by dragging two fingers on the screen in different directions. This also drives me nuts, as sometimes when I want to only zoom in or out, I wind up rotating the map; using this control pops the map back to a normal orientation. You can turn off advanced multi-touch in the settings section, as I have.

The toolbars are partially transparent, and fairly small, so I usually leave them all turned on. However, the Settings section allows you to set any, or all, of the toolbars to fade away after a few seconds; tap twice on the screen to make them visible again.

One final topic, peripheral to the interface. Like OruxMaps, Locus has the option to use an external Bluetooth GPS receiver to obtain position, in place of the built-in GPS receiver; this can be specified in the settings section. This has some major advantages for both battery life and position accuracy. Unlike OruxMaps, though, I was actually able to get this Bluetooth connection to work in Locus, though it took some effort. Android’s Bluetooth support is a bit flaky, and it can take multiple attempts to achieve a successful connection. If the first Bluetooth connection attempt doesn’t work, and you’ll get an error message to that effect, go to the GPS status page, and turn GPS off and then on again. It may take 3-6 attempts, but eventually you do get a working connection to your Bluetooth GPS receiver. The application can also use Bluetooth GPS via proxy apps like Bluetooth GPS, which replace the built-in GPS receiver position for all apps.

Tomorrow: A look at maps in Locus.

Contribute Points Of Interest (POIs) To The OpenStreetMap Project With Mapzen POI Collector

Application Name: Mapzen POI Collector

Description: Collect data about local points of interest, and add it to the OpenStreetMap project.

Publisher’s website: CloudMade

Cost: Free

Version/date reviewed: v.0.5.1  /  12-12-10

Phone/OS: Droid X / Android 2.2


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

The OpenStreetMap Project is a collective, crowdsourcing effort to create a worldwide free map dataset, with both natural and man-made features. It relies mainly on volunteer user contributions of data, although some commercial companies (e.g. Microsoft, ESRI) are also getting involved in contributing data and resources. After registering on the OpenStreetMap site, you can contribute the project using their online editor Potlatch. But CloudMade, the quasi-commercial relative of the OpenStreetMap project, has released Mapzen POI Collector, an Android app that lets you add point-of-interest (POI) data to the OpenStreetMap database directly from your phone. Note: You’ll need to be registered on the OpenStreetMap site to contribute data, as the app will ask for your registration ID and password.


Figure 1: The app will load in OpenStreetMap map imagery for your general location, or your exact location if you choose “My location” from the menu. The symbols you see on the map are previously-recorded POIs;; to see all of them, zoom in closer, as some of them will only appear at higher zoom levels. You may have to give the app a few seconds to load in all the POIs as you change the zoom level, as it can be a bit slow.


Figure 2: Zooming in, several additional POIs become visible; these are two that I added recently, a library and a city hall. To identify a POI, tap on it …


Figure 3: … to bring up an ID tag; tap on the blue arrow to bring up more info …


Figure 4: … like the name and type. If you want to add more info to this POI listing, you can choose Edit POI from the menu …


Figure 5: … and add additional info like the address, phone number, hours, etc..


Figure 6: If I want to add a POI, I need to scroll the map to the desired location, then choose Add POI from the menu.


Figure 7: An icon appears, which I can press and drag to move to the correct location. A long press on the blue arrow brings up the info screen …


Figure 8: … where I can add data. This particular location is a post office …


Figure 9: … and I select the correct PO Type from the Services sublisting, Post office here; there are hundreds of Types grouped by categories like Auto, Education, Entertainment, Government, etc.


Figure 10: After entering all the data I have, I need to select Save from the menu to submit the data. As I kept learning, pressing the Back button will lose all the data I’ve submitted (d’oh!).


Figure 11: If the data submission is successful, the POI entry becomes live in the OpenStreetMap database right away, and can be seen in the map view on your app, like the Post Office icon now visible at left.
Other issues: Apart from the slowness of POI display, and occasional slowness in loading OpenStreetMap imagery tiles, seemed to work fine.

Final thoughts: OpenStreetMap data is only as complete as the efforts of volunteers can make it. If you want to join in on the process, this app is a simple and easy way to start.

GPS Trip Recording And Online/Offline Maps With Trimble Outdoors

Application Name: Trimble Outdoors

Description: GPS app for trip recording, with online/offline maps

Publisher’s website: Trimble Outdoors

Cost: $9.99

Version/date reviewed: v.4.1.8  /  12-11-10

Phone/OS: Droid X / Android 2.2


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

Trimble is probably best known for its professional lines of GPS and other measurement hardware. They’re also known for making really crappy software that runs them; you can often locate a Trimble user in the field by listening for curse words, as something else goes wrong with the software. Trimble Outdoors is an unusual foray into the general consumer field for them; do they do any better here?

The general idea behind the software is to create records of various kinds of outdoor activities, and upload them to the Trimble Outdoors website for storage and sharing. So you’ll need to create a free account at Trimble Outdoors to use the software at all.


Figure 1: After starting up the program, and logging in, you’ll see a list of of activities under which you can record trips. Start up hiking …


Figure 2: … and the app will fire up the GPS, load in maps for the area using the chosen mapset, and start logging your position as a track. From the list screen, you can also go to a list of previously-saved trips, and load them into the map view as well, either for viewing or for continuation of that trip.


Figure 3: Here’s a short pair of tracks, along with several waypoints. You can add waypoints, but there’s no on-screen control for that; you need to dive into the menu to find that control.


Figure 4: The Stats button gives you info about distance traveled, total time, and average speed; the Charts give you the choice of plotting either Elevation or Speed as a function of distance or time.


Figure 5: When you’re recording a trip, you can also capture photos, audio, or video, tagged with the location they were taken at.

When a trip is complete, you can save it on your Android unit. You can also upload it to your online Trimble Outdoors account, either for personal private storage or to share it with others:


And you have the option of sharing this trip on either Facebook or Twitter as well.

This all sounds great … in theory. In practice, this app has some major issues:

  • Screens can be slow and non-responsive, especially the start-up list of activities
  • The choice of in-app maps is limited to Bing maps (road, aerial, hybrid, terrain) and MyTopo topo maps; no OpenStreetMap maps, or anything else. Google Map imagery is only available if you export track and waypoint data to a separate screen; it’s not integrated with the app, the way it is with other Android GPS and map apps.
  • The app can be flaky in recording data. It’s supposed to continually record a track, but on several occasions track recording spontaneously stopped.
  • The app will cache maps for offline use, but the only way to do it within the app is to pan the map to the desired area, and then pan/zoom in around to save maps to the cache directory. This is really a crappy way to handle this; other map apps let you define a geographic region, and then automatically download the tiles for that region.
  • The default size setting for the cache is only 10 MB, far too small to save any significant number of maps; you’ll need to set this larger right away.
  • You can generate map caches at the Trimble Outdoors website, but the process isn’t straightforward. You zoom/pan a Google Maps view or MyTopo map view to show your desired area, and then select the maximum zoom level you want tiles for; the web app will then generate a zip file containing these tiles. You then have to manually unzip the zip file, and then copy the files over into the cache directory  on your phone (making sure that the cache is large enough to hold these tiles). And even though you’re viewing Google Map imagery in the app, the downloaded tiles will be in the matching Bing Maps format, not Google Maps!
  • Unlike other apps, you can’t create named mapsets that you can load in at will; you have the cached maps and that’s it.
  • You can’t import GPX track or waypoint files directly; you need to import this data into your online account to create a trip containing these, then upload this trip into the app on your Android unit.
  • You can create trips online using a Trimble Outdoors web app, including tracks/waypoints/audio/video/photos. But I found this web app to be sluggish and erratic in performance. Creating tracks where I wanted them to be was virtually impossible, as the track would stop following my cursor, then jump to an unintended spot.
  • There’s no way to directly export tracks or waypoints created in the app itself; you have to upload the trip to your online account, then export the data from there as a GPX or Google Earth KML/KMZ file.
  • If you load in an earlier trip, then try to exit that trip without saving it again, you can wind up deleting the earlier trip data (as I found out to my regret, several times).
  • There’s no integrated GPS status screen or compass.
  • The app can only really be used in portrait orientation; in landscape orientation, the app’s toolbar takes up so much space that there’s very little left for the actual map.
  • Finding app functions and settings is pretty much hit-and-miss; there doesn’t seem to be any rational layout of functions.
  • And I could go on …

Other issues: While I didn’t have any issues with crashes or force-closes, you might take a look at the Comments section in the Android Market listing for this app; lots of people seem to be having problems. Now that Google is reducing the amount of time you have to uninstall a program for a full refund, from 24 hours to 15 minutes, you really won’t have a lot of time to evaluate how well it will work on your phone.

Final thoughts: For an app that’s already in version 4, and has been around since 2009, it’s still not in very good shape, especially for the price they’re asking. While the ability to create georeferenced multimedia trips sounds pretty cool, the actual program function just isn’t reliable enough to make this worthwhile. And as a GPS mapping app, it’s missing a lot of functionality. If you want MyTopo topo maps, either BackCountry Navigator or Topo Maps would be a better choice; while neither of those is perfect, they have more of the GPS functions you really need to have, are far easier to use, and offer in-app map caching and mapset management. And for a solid general GPS map app, you’d do better with OruxMaps, which has a lot more features, and is free.

Turn Your Android Into A True Handheld GPS With OruxMaps – Part IV: Creating Custom Offline Mapsets From Online Map Services

Previous posts in this series: One, two, three.

As mentioned in Part Three, OruxMaps will automatically cache data from online map services, up to a user-specified limit. However, it can also use mapsets generated automatically from online map data in several different ways. This has the advantage of letting you specify the geographic area and zoom levels you want included, and letting the program handle the download chores; for cached data, you have to manually scroll to the desired area, and zoom in/out to cover all desired map zoom levels. If at all possible, you should only do this when you have a good WiFi connection, as these mapsets can easily run to 10s, if not 100s, of megabytes in size.


Figure 1: The first method for generating such mapsets is to use OruxMaps built-in mapset generator. From the main intro screen, choose Online Maps, select the online map source you want to use, and zoom/scroll to the desired map location and area coverage. Then go to Menu => Tools => Map Creator


Figure 2: Here, you can modify the latitude/longitude limits of the map, and select the zoom levels you want included. This is a bit inconvenient – other map programs let you manually select the desired area graphically rather than requiring lat/long values.


Figure 3: Higher zoom levels are greater detail, but will require more storage space; OruxMaps will tell you how much storage space will be needed, and how many tiles will be downloaded. For example, checking “17” and “18” here would increase the mapset size to 697 MB; checking “19” would exceed the maximum allowable size of 2000 MB, 2 GB. You’ll also need to specify a name for the mapset at the bottom. Once done, click on download, and you’ll get a progress bar; for a large dataset, be prepared to wait a while, even with a fast connection.


Figure 4: Once complete, the new mapset should show up in the list of offline maps that pops up when you choose Browse maps from the startup screen, or Offline maps from any map selection screen …


Figure 5: … and the selected mapset should load in. Zoom in to a level for which you have no data, and either you’ll get a blank screen, or a different mapset for which data for that zoom level exists will load in.

This works, but it isn’t the easiest system, and you’re limited to just those online mapsets available in OruxMaps. The app author himself doesn’t really recommend this approach, but it’s there if you need it. A better option may be to use the free Mobile Atlas Creator application. I’ve covered how to use this app in previous posts, so I won’t repeat the basic operations. But for creating a mapset for OruxMaps, the app-specific details seem to be:

  • Select OruxMaps or OruxMaps Sqliteas the atlas format (latter requires the SQLiteJDBC library file in the same directory).
  • You can add multiple mapset types to the atlas, but be sure to give each a unique name.
  • Create the atlas, and when complete, open the atlas folder.
  • Open the folder for the newly-created atlas, and copy the folders with the same names as the mapsets into the oruxmaps/mapfiles folder on your Android unit.
  • Start up OruxMaps, and you should get a message stating that the map database is being updated. If you don’t get that, you can do this manually from the startup screen with Menu => Update maps DB. Your mapset “should” show up in the Browse maps option.

Notice how I said that these “seem to be” the details? That’s because I couldn’t get this process to work on my Android, no matter how hard I tried. Others have reported success, so it must be something that I’m doing wrong, or some quirk with my phone.  If anyone else gets this to work, please post in the comments section, along with any special tricks you might have used. I’d really like to get this to work on my phone!

Tomorrow: Creating OruxMaps mapsets from scanned/downloaded mapfiles.

Turn Your Android Into A True Handheld GPS With OruxMaps – Part III: Managing Online And Offline Maps

Part I (OruxMaps interface) here; Part II (GPS Functionality) here.

OruxMaps has terrific map display functionality built into it. It can download and display map imagery in real-time from online sources like Google Maps and Bing Maps. But it also has the ability to use downloaded and saved map files to display map imagery even when no data connection is available, so you can use it in places where no WiFi or cellular coverage is available.


Figure 1: Here’s the start-up screen for OruxMaps. If you select Online Maps


Figure 2: The last online map service you used will be loaded in, at the last zoom level you used. Here, it’s Bing Maps at zoom level 19. If I want to select a different online map, I can press the Map Layers button on one of the button bars, hidden here, but which can be revealed by tapping in the appropriate location on-screen (see Part I of this review for more info). I can also use the Menu => Maps option to bring up the selection list …


Figure 3: There are roughly 30 different mapsets available by default in this list, some of which cover the whole earth while others have limited geographic coverage. If you pick a mapset with no coverage for your area, you’ll get a blank display. You can also add Web Mapping Service (WMS) servers to supply additional mapset options; more on this in a future post. If I select IFR-L …


Figure 4: … I get an aviation map for my area.


Figure 4: Online maps are just that: online. If you’re in an area with no data connectivity. i.e. offline, you can’t download new map data. However, OruxMaps will automatically save/cache map tile data in your Android unit’s memory, so that it doesn’t have to keep downloading the data over and over again. This cached data is also available when you’re offline as well. So one quick way to save map data for online use is to scroll the online map to your area of interest when you have a data connection, and zoom in to your desired detail level; every map tile downloaded for view will also be saved to the cache. This is a big plus if you’re on a limited wireless data plan – cache maps when you have a free WiFi connection, then use them later.

By default, OruxMaps sets a 256 MB minimum and 512 MB maximum cache threshold for saved map data. When you hit the maximum, it will tell you, and then process the cache to remove older map data until it hits the minimum cache threshold (the author cautions that this may take a while, and you should leave it undisturbed during the process.. You can adjust these threshold values up or down in the Settings => Maps online section.


Figure 5: In addition to online maps, direct and cached, OruxMaps lets you use custom created mapsets. These can be generated either from online map services, or from your own graphic map files. I’ll review some ways to create these and install them on your Android in upcoming posts. For now, I’ll just say that you can access these mapsets either from the Browse maps option on the starting screen (first pic above), or by clicking on the Offline maps button in the online map selection screen (third pic above).

If your last location fix was in a spot included on the selected map, you will go immediately to that spot; if not, you’ll be shown the middle point of that mapset. GPS tracking will normally be off in this mode; if you turn it on, and your chosen mapset doesn’t include your current position, you’ll be asked to choose a mapset that does include your current position, and you’ll be given a list of available maps that meet that criterion.

Maps are stored in the “mapfiles” subdirectory of the main OruxMaps directory on your SD card. Unfortunately, there’s no way inside the program to move/copy/delete mapsets in that program; you’ll have to either use a file manager like Astro File Manager or OI File Manager, or hook up your Android in USB Mass Storage mode to do this.


Figure 6: The map quality for custom mapsets can be very high; here’s a sample of a Forest Service topographic map, downloaded from the Forest Service raster data gateway. By default, these are displayed at 100% zoom, 1:1 pixel ratio, but you can overzoom in closer, or zoom out to view more area. For the latter, though, OruxMaps limits the number of map tiles loaded; however, as you move or scroll to new area, the corresponding map tiles are loaded automatically

According to the OruxMaps website manual (scroll to the bottom), you can also add a Web Map Service server to your list of online maps, which in theory could give you flexibility in adding additional online mapsets to OruxMaps from a wide variety of sources. However, I can’t get it to work on my phone, even though the OruxMaps forum reports success with other phones. If you can get it to work on your phone, please let me know in the comments section. Started working spontaneously for me after a short break; not sure what happened.

Tomorrow: how to generate custom mapset files from online map services.

Turn Your Android Into A True Handheld GPS With OruxMaps – Part II: GPS Functionality

Continuing on from Part I yesterday …

GPS Functionality


Figure 1: One feature I was excited to see OruxMaps had was integrated support for an external Bluetooth GPS unit; as I’ve posted about before, this has significant advantages for extending battery life and improving position accuracy. Unfortunately, I was unable to get it to work with my Bluetooth GPS unit; YMMV. The program really needs a special screen to help establish and confirm a good connection with the Bluetooth GPS. Fortunately, the excellent Bluetooth GPS app works fine with OruxMaps, so you can still use your external Bluetooth GPS unit even if OruxMaps built-in Bluetooth functionality doesn’t work. Hopefully, this will be addressed in future versions.


Figure 2: Online maps can sometimes have positions that are offset from their true positions, by anywhere from tens to hundreds of meters. OruxMaps has a killer built-in calibration function, accessible from the Tweaks menu, that lets you correct for such an offset, improving the accuracy of your position as displayed on the map. You’ll have to reset this every time you start up the app, as it appears to only be good for your current session.


Figure 3: To create a waypoint, just tap on the Create waypoint button on a button bar (the pushpin with a “+” next to it). You have the following options for input variables:

  • Waypoint name
  • Waypoint dropdown: lets you choose the waypoint icon from a preset list. No option yet for your own custom icons; I hope this comes eventually.
  • Description
  • Coordinates; default is your current position, but you can enter custom coordinates here (WGS84 datum only)
  • Projection: create a waypoint displaced from your current position by a certain distance and direction
  • Geocoding: supposedly does an online lookup of your current location, and then enters a corresponding geographic name. I couldn’t get this to work.
  • Extensions: lets you associate an already existing photo or video with the waypoint; you can also record an audio note, or enter additional text.


Figure 4: Saved waypoints are accessible from the map view with Menu => Waypoints. Waypoints displayed in the list can be loaded into the map view with the Menu  => To map option.


Figure 5: You can filter waypoints by type, distance from your current location (in km or mi., depending on the set unit system), date, or associated tracks. Only the filtered waypoints will then be loaded using the To map option. I do wish there was an option to select a single waypoint, or multiple waypoints, by checking them off on a list.


Figure 6: To log a track, tap the Record track button (the icon with multiple green flags and a red record button); to stop recording the track, tap the button again, and it will automatically be saved in the track database with the date and time as the name. You can set the track color and thickness in the Settings section.


Figure 7: You can access the tracks database list with the Menu => Tracks option, which shows when they were created, and their length. As with waypoints, you can filter this list to only display tracks within a certain date range or type. Unlike waypoints, though, you can choose a single track to load. In fact, you have to – one of OruxMap’s biggest drawbacks is that it can display only one track at a time. And if you’re recording a track, you can’t view a previously-saved track at the same time. Hopefully, this will be fixed in the future, so that you can display multiple tracks at the same time (and have them appear in different colors). On the plus side, if you load a track into a map, you can calculate the area enclosed by the track using the Menu => Tools option.


Figure 8: One very cool feature for tracks is the ability to display statistics for that track …


Figure 9: And plot parameters like altitude, speed and slope against either distance or time. If you have a compatible Bluetooth heartbeat monitor, it can plot that as well. Use the coupon code ORUXMAPS to save $5, and get the app’s author some affiliate revenue.


Figure 10: Tracks and waypoints can be imported in either the GPX or KML formats. OruxMaps will use the OI File Manager if installed to select the import file, so it doesn’t have to be in a program-specific directory. This makes Dropbox a very convenient way to import data; just drop the files into your computer’s Dropbox folder, download them to your Android unit using the Dropbox app, then use the OI File Manager to navigate to the “dropbox” folder to select them for import. Similarly, lists of waypoints/tracks, or individual tracks, can be exported into either GPX or KML format; in this case, though, the default folder will always be the “tracklogs” subfolder of the main “oruxmaps” folder, and the filename will be automatically generated.

These are just some of the features; a look through all the menus (plus a look on the website’s help manual page) will reveal many more. The app is also actively being developed, and more features are added/modified all the time.

Tomorrow, a more detailed look at using online and offline maps with OruxMaps.

Turn Your Android Into A True Handheld GPS With OruxMaps – Part I: Interface

Application Name: OruxMaps

Description: Provides most of the functionality of a dedicated handheld GPS unit.

Publisher’s website: OruxMaps

Cost: Free (donationware)

Version/date reviewed: v.3.27  /  11-27-10

Phone/OS: Droid X / Android 2.2


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

In the very first post on this website, almost four months ago, I argued that Android had the potential to displace dedicated handheld GPS units, like those from Garmin, Magellan, and DeLorme. Thing is, while I’ve posted many times on apps that perform a few of the the functions of a dedicated handheld, I haven’t yet written about a decent app that turns an Android unit into a full replacement for one of those; some come close, but the feature sets tend to be a bit slim. Now that’s going to change – this week will be devoted mostly to a review of Orux Maps, plus a few additional posts about how to take advantage of some of its advanced features.

Orux Maps is the first app I’ve reviewed that turns an Android phone into a serious functional challenger for dedicated GPS units. It’s not perfect, but if you forced me to choose between my current handheld GPS and an Android phone with Orux Maps, I’d pick the latter (but I’m glad I don’t have to choose). I’m not going to even have a “Final thoughts” section with recommendations; if you’re serious about using your Android’s GPS capabilities, this is a must-have app, period. But I will review some of its basic capabilities.

Because OruxMaps has a huge number of features, the review will be broken down into sections. Today, I’ll talk about the interface; tomorrow, external Bluetooth GPS, waypoints and tracks; and the rest of the week will talk about the online and offline map capabilities of the program. Yes, you can use maps on the app with and without an active Internet connection.



Figure 1: Starting up the program brings you to this basic startup page. Browse maps brings up a list of pre-loaded offline maps (more on this later); selecting one of those loads the map, and centers the view on the center of the map. Actual location starts up the GPS, and if an offline map is available for that area, loads it in automatically. Online Maps starts up the map view with the last selected online map type. OruxMaps comes with a preset list of online map sources, including both the usual suspects (Google, Bing, Open Street Map), and some less-common ones (aviation maps, foreign topo maps). According to the website manual, you can add WMS servers to your list of online maps, but I had problems with that.

Settings lets you configure a huge number of options for the interface, units, mapping settings and the like. You can also access settings from the map screen, plus you have quick access to some of the more important settings from any map screen by using the menu button to select the Tweaks option.


Figure 2: Here I’ve have selected Online maps, which defaults to the last online map service used (Bing Maps). The GPS is on, as indicated by the small GPS icon in the upper right part of the map view, as well as the altitude/speed/accuracy data in the dashboard at bottom. If the GPS were off, the dashboard would only show the coordinates for the center of the display and the map zoom level. Clicking on the satellite icon at upper-left turns GPS tracking on and off.

The first thing I tried to do with the program was create a waypoint, but I was stumped initially. There was no menu item for creating waypoints, and the icons at top, from left to right, are:

  • Turn GPS on/off
  • Change GPS acquisition mode (time/distance) to Default defined in settings), Fast (continuous time, 5 meter distance), or Power save (every 30 seconds / 80 meters).
  • Turn track acquisition on/off
  • Zoom map in
  • Zoom map to 100% (one map pixel = one screen pixel)
  • Zoom map out

But no waypoint creation icon – wha?! Turns out, though, that if you tap and drag the icons at top from right to left, additional icons will appear …


Figure 3: These icons are (left to right):

  • Add a waypoint
  • Delete all waypoints and tracks from screen (does not delete them from storage)
  • View track/route waypoints (sometimes individual waypoints as well; this is a bit inconsistent)
  • Follow a route, unload it, or stop all navigation (including waypoints)
  • Go to a point, start of track/route, center of the map, or last GPS position
  • View track statistics (more on this tomorrow)

Three additional icons further off the screen let you select a map layer, go to the settings section, or start up the GPS Status app. OruxMaps doesn’t come with a satellite status/strength screen, but uses the GPS status app to display this info. You’ll need to have that app installed on your Android unit to use this function; if not installed, you’ll be sent to the Android market page for GPS Status to let you install it (it’s free). I’d prefer an integrated view in OruxMaps for this, especially one that displays coordinates in large font (so I won’t need my reading glasses).

A problem with this setup is that you may not need some of the functions defined by the icons, and having to scroll the icons in the button bar to reach one that you actually do use on a regular basis can be a pain. This bothered me until I discovered in Settings => User Interface


Figure 4: … that you can customize the button bar to include only the functions you want, and create  up to four of them on-screen, each with its own set of buttons (duplicates if you like). To add a button, just tap on the icon in the center control screen, then tap the arrow button to add it to the corresponding button bar (left, top, bottom, right). You can remove individual buttons from a bar by tapping on them, or press “Reset” to remove all of them from every bar. You’ll need to exit the map screen and then restart it to see the new button configuration.

Elsewhere in the Settings => User Interface section, you’ll find options to set other map screen options, like customizing the GPS dashboard to show additional info, turning the scale on/off, making the butttons larger, etc.


Figure 5: With multiple button bars and the dashboard, though, much of the map screen will be obscured.


Figure 6: But OruxMaps has additional options in settings that will cause the button bars and/or dashboard to disappear after a few seconds, leaving the map view fully unobscured. You can also turn off the Android status bar at top to free up even more display space for the map. Tapping briefly on the map screen at the position of the button bar or dashboard will make it appear again. I do wish there was the option to have a specific button bar always visible, and others disappear, but for now it’s all of them or none of them.


Figure 7: Unlike some map apps that only show maps in 1:1 pixel mode, OruxMaps lets you overzoom, making some of the finer details easier to see. For my area, Bing Maps has exceptionally high-quality aerial maps, at least 1-ft. per pixel or better, making it possible to spot very fine details.


Figure 8: You should definitely check out the Tweaks section, available from the menu. This is a shortcut to a number of options also available in settings, but easier to access this way. Perhaps my favorite is turning Compass and View Angle on. Compass puts a small compass view at the top, showing which direction is true north (magnetic declination is automatically corrected for), while View Angle shows a small yellow wedge overlay indicating which direction the phone is pointed. You can also set the map display mode so that it rotates either in the direction the phone is pointed, or in the direction you’re moving. Additional tweaks include the option to change the position cursor color, and dim the display for use at night.

That’s it for Part I; Part II tomorrow will look at GPS functionality and recording waypoints and tracks.

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.