blankblank blank


Archive for September, 2010 Page 2 of 3



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:

zoomlevels

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:

customtiles

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:

atlascontent2

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”

finalac

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:

tbtared

“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:

2010-09-12_170134

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:

tilestore

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:

mobacoverview

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:

zoomgrid

gridsquares

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:

coordselection

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:

maplist

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 mytopo.com 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:

selectmaps

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.




Drop An Android Parking Anchor With Carrr Matey

Application Name: Carrr Matey

Description: Marks your car’s parking spot, navigates you back to it.

Publisher’s website: Carrr Matey

Cost: Free; ad-supported.

Version/date reviewed: v.1.6.7  /  9-7-10

Phone/OS: Droid X / Android 2.1

cm_QR

Android market link
Android Market (browser)


There’s a ridiculous number of parking spot apps on the Android market, most of which are pretty plain – mark your spot, and show it on a map. Carrr Matey stands out by adding a bit of fun to the process with a marine/piratical theme.

 

cmnav

Figure 1: If you have a GPS fix, your current location will be indicated by a blue dot in a Google Maps view. Took me a while to realize that the crossed swords at the bottom was the “zoom in” button (+), and the single horizontal sword was “zoom out” (-).

anchor

Figure 2: When you’ve parked your car, tap the “Drop Anchor” button to mark your parking position with a ship icon. If you don’t have a good GPS fix, you’ll be told that, and given the option of marking your spot by tapping on the map.

timer

Figure 3: You’ll also be given the option to set a timer, for when your parking time runs out. After setting your time, and marking your position, make sure you exit the app to turn off the GPS tracking – this will keep the battery from draining. The timer will continue to run in the background even after you exit the ap

compass

Figure 4: To find your car again, tap the “Find Vessel” button. You’ll have the option of either using the map, or using a compass that points in the direction your car is located, along with the approximate distance. Yards for distance only; bit less than a meter for most of the world

lot

Figure 5: If your car is parked inside a parking building, you can use the “Harbor” button to bring up a screen that lets you mark its position. You scrawl the letters/numbers by hand; I expected a standard text box, but this is faster, and good enough. You can clear earlier entries from the menu. Tap on the color box to bring up a palette that lets you choose from 9 different colors.

Additional functions:

  • Choose either Google Maps street maps or hybrid maps (road + satellite view)
  • Send someone either your parking location or current location via email
  • Saves your last 5 parking spots in a list; if you drop something at an earlier parking spot, you can find that spot again

Other Issues:

Nothing major. It would be nice to have the option of marking multiple spots at once, but the “last parking spots” list is a reasonable substitute.

Final thoughts:

Does the job, adds some fun, and is good for a laugh when you show it to others. What more do you want? Arrrrrr!




Compass Calibration And Reference Issues In Android Phones

Many Android phones (maybe even most?) come with a built-in magnetometer that lets them measure the Earth’s magnetic field strength and direction, and determine both magnetic and true directions for the phone. I thought I’d take a look at some of the basic issues associated with its use.

First off, the magnetometer needs to be re-calibrated on a regular basis:

  • The magnetometer readings can “drift” with time
  • Exposure to a strong magnetic field can alter its characteristics
  • Every battery has a unique magnetic signature, so replacing the battery can require re-calibration

compasscal

Figure 1: The compass calibration procedure can be accessed from the Settings menu, Location & Security => Calibration Compass. It’s kind of an annoying process requiring you to rotate the Android unit back and forth along the three possible axes of rotation until you get a message indicating that calibration is complete. On my unit, there’s a demo animation that shows you how to do this; one frame of this is the picture at left. Some apps (like Snaptic’s Compass) offer a simplified calibration procedure that involves a simple figure-8 movement of the unit; I’ve found that this procedure often doesn’t fully calibrate my Droid X compass, so I always do the standard full calibration.

I’ve found one quick and easy way to check my unit’s compass calibration. It requires that you have a regular old-fashioned magnetic compass available; doesn’t have to be an expensive one, just good enough to tell you clearly which direction is magnetic north. Next, start up the Snaptic Compass, and set it to display magnetic north. In a location away from any large hunks of iron-containing metal, which can shift magnetic fields, orient both the Android phone and the magnetic compass so that they point towards magnetic north (Figure 2):

uncal

Even a cheap compass will give you an accurate heading towards magnetic north, so if the phone and compass disagree, as they do above, it’s the phone that’s wrong. BTW, I deliberately miscalibrated the phone’s compass by doing the calibration procedure next to a large hunk of magnetic metal, my car; when you do a calibration, you should do it as far away from any magnets or magnetic metals as possible (e.g. iron, steel, nickel).

You need to be careful to leave some distance between the phone and the compass when you do this test; otherwise, the magnetic compass needle can affect the phone’s reading: (Figure 3)

adjacent

After re-calibrating the phone, and repeating the test above (Figure 4):

cal

Unfortunately, the screen contrast on the phone sucks in this photo, so you barely see the Snaptic Compass dial. But hopefully you can see that, unlike the first pic above, both compass and phone are oriented in the same direction when both indicate north.

When I use a compass app on my Android, I choose one that lets me set either true or magnetic north, and always stick with true north. True north is always the direction towards the North Pole, while magnetic north points towards the magnetic north pole, a direction offset from true north by the magnetic declination (see yesterday’s post for more on this). But some apps have no setting for true or magnetic north, and won’t necessarily tell you which kind of direction they’re using for north. For example, Smart Measure has a built-in heading meter, and it displays the magnetic direction instead of the true direction; you’d have to add the “magnetic declination” to that heading to get the true direction. And at least one app I’ve run across has a setting that lets you choose between true and magnetic north, but always displays magnetic north. The difference between the two direction angles varies depending on where you are, but is often greater than 10 degrees.

I’d like to see all app writers either use only true north, or give the option between true and magnetic north,. But until that happens, here’s a simple way to check which kind of direction an app is using:

scompasstrue

Figure 5: Install the Snaptic Compass app on your Android unit, set it to show true north in the Settings menu, then rotate the unit until it’s pointed directly at true north. Don’t move it once it’s oriented in the true north directio

magcompass

Figure 6: Start up the app in question. If the app uses true north, then the direction indicator should show north, the same as the Snaptic Compass. In this case, though, the needle deviates slightly to the east of true north, indicating that it’s displaying magnetic north. The amount of the deviation should be the magnetic declination for your current location, about 11 degrees in this case.




Which Way Really Is North – Magnetic Declination Info For Compass Correction On Android

Compasses don’t point towards true north, the geographic north pole. Instead, they roughly point towards the magnetic north pole, which is well south of the geographic north pole in Canada. But since the lines of magnetic force aren’t uniform, the actual direction a magnetic compass points (“magnetic north”) can be slightly different than the true bearing towards the magnetic north pole. The degree difference between true north and magnetic north is the “magnetic declination”, and you need that number to correct the reading from a magnetic compass to the true direction. Here’s a NOAA map showing the lines of constant magnetic declination (Figure 1):

magmap

Magnetic declination can be positive (red) or negative (blue); you add the declination to your compass bearing to get your true bearing. Some more advanced compasses come with an adjustable dial that lets you set this magnetic declination correction, so that you can get your true bearing directly from the compass.

Here are two apps whose main function to give you that magnetic declination value. One provides it only for your current location as determined by GPS, while the other lets you select any location on the earth, and gives you the magnetic declination (plus other info) for that spot.
Continue reading ‘Which Way Really Is North – Magnetic Declination Info For Compass Correction On Android’




Padmapper – Filter, Search And Map Rental Prospects On Android

Android and Me has a long review of Padmapper, an Android app that pulls rental information from Craigslist, Apartments.com and many other sites, and maps them in a Google Maps interface; they give it a big thumbs up.




Measure Distances, Heights And Direction With Your Android Phone Using Smart Measure

Application Name: Smart Measure

Description: Measure object distance, height and direction.

Publisher’s website: Android Boy

Cost: Free

Version/date reviewed: v.1.1.1  /  9-6-10

Phone/OS: Droid X / Android 2.1

sm_QR

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


Smart Measure uses your Android’s orientation sensor, camera view and some simple trigonometry to figure out how far away and in what direction and object is. If you read the comments on the Android Market about this app, you’ll see that some people think it’s great, while others complain that it doesn’t work at all. I had problems getting it to work correctly, but ultimately managed to get reasonable results. In order to get it to work, you have to understand its limitations, and also configure it correctly for your unit.

 

The program starts off with a simple diagram explaining how it works; by using the height of the camera above the ground, and the angle you need to tilt the unit so that a crosshair touches the base of the object you’re measuring, it can calculate the distance to the object:

sm_first

Then, using the distance and the angle you have to tip the camera up, it can calculate an object’s height:

sm_2

But in order to get an accurate measurement, you need the following:

- A constant height of the camera above ground; you need to measure this value (in meters), and input it as a constant into the program. But you also have to make sure that when you tilt the camera to measure the angle, you also don’t change its height, as this will throw the measurement off. For me, the best approach was to have the camera lens at eye level, and then twist my wrists to rotate the camera while keeping the camera lens at the same height. This takes some practice, as my natural inclination was to lower or raise the camera as I tilted it up or down.

- An accurate angular measurement. Smart Measure has a default “vertical” angle of 88 degrees, but this resulted in horribly inaccurate results. There’s a built-in calibration mode, where you place your camera against a known vertical surface and push a button, but this didn’t work for me – it kept complaining that the angle was too steep. You can also enter a “vertical” calibration angle manually, and this was the approach that worked for me – I finally wound up at 94 degrees vertical. But to get good results, you have to measure a distance manually using a tape measure, use Smart Measure to determine the distance, then adjust the calibration angle until Smart Measure’s value agrees with the actual distance. Once I did this, the distance measurements I got were fairly decent.

- Your feet and the base of the object need to be at the same level. For practical purposes, this means that you both should be on a flat, level surface.

- Maximum distance readout with Smart Measure was 80 meters, but at those distances, even a small shift in camera angle results in large measured distance changes. It seemed to me that  about 50 meters was the maximum distance at which you could expect to get  results that were even reasonably close, if not 100% accurate.

Once I had the unit calibrated and configured, using it was easy. Using the screen, point the crosshair at the base of the object you want a distance to, and press the “shutter” button at lower right to capture and freeze the distance measurement:

sm_distance

You’ll get a “freeze-frame” of the capture shot in the upper-right corner. Here, the actual distance to the base of the wall was 5.05 meters, but since the capture was slightly short, this is pretty accurate.

Once you shoot the distance measurement, if you want the height, tap on the tree icon, tip the camera up so that the crosshair touches the top of the object, and press the “shutter” button again to freeze the height measurement:

sm_height

Actual height was 2.8 meters, so it’s a bit short, but still not too bad. Notice also that there’s a compass in the upper-left with a digital readout of the bearing; as best as I can tell, it’s reading the magnetic direction (which can be off from your true direction, often substantially; more on this in future posts).

Issues:

- One force-close, but  usually worked without incident.

- In compass, digital bearing is in small digits, and is obscured by graphic indicator when you’re point north.

- Magnetic bearing given, not true bearing.

- No way to save data; screen capture would be helpful.

Final thoughts:

If you calibrate it correctly, and keep in mind its limitations, Smart Measure is a quick and modestly accurate way to measure distances, heights and bearings of close objects (<50m distance). But it’s no substitute for a tape measure, or even a well-calibrated foot pace. Still, it has a permanent place in my Android phone’s toolbox.




Reviews Of CoPilot Live Offline Car Navigation System

The Android And Me site has a comprehensive review of CoPilot Live, a turn-by-turn car navigation app with offline data. Their bottom line is that unless you absolutely need to have offline data for reception or data plan reasons, CoPilot Live doesn’t have that much more to offer than the free Navigation app from Google. Android Tapp has a more positive view of the app.

PS Leave a comment on the review posts, and be entered into a drawing for a free copy.




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

multimap_qr

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
OSMA
cycle
Cycle/Piste
OpenOMStreet
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.

selectarea

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

resolution

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.

cache

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.