TopoUSA 4.0 has been released. Check out my review of what they have added.
TopoUSA 3.0 is the latest version of Delorme's topographic mapping software. It is an excellent choice for routing of bicycle trips because it contains street data as well as topographic data. You can route along roads, trails, or just make your own route. Most Topographical mapping products (including older versions of TopoUSA and Wildflower's TOPO! product) contain the maps and street data, but have primative routing tools. Generally they can do point to point routes on the map, but can't follow roads.
Upon opening the package it is obvious that this program has a lot more data than most mapping software. It comes on 7 CDs, broken up in different regions. For this review I primarily used the West Coast CD, which contains data for California, Washington State, and Oregon.
Making a route
To get a hang of the software I used it to route a 4-day bicycle trip that I made in August, 2000. This trip went from Winthrop, WA to Bead Lake (near the Idaho border). When planning this trip I used a combination of the Washington State Atlas by Benchmark Maps and Microsoft Expedia Streets to figure out the route. One thing that both of these lacked was detailed topographic information to prepare for the hills. This is where TopoUSA comes in.
Routing with TopoUSA is similar to routing with most street mapping software. You click the start, end, and any waypoints along the way. You can tell it what types of roads you want to use (so I was able to tell it to avoid interstates, something that I can't do in Microsoft Expedia Streets) and it will route along those waypoints. It also has something very similar to a waypoint called a "via" which you can also use to mark route stops. The difference between a waypoint and a via is that you can tell it not to draw the via points on the map. This makes for much clearer maps.
To make the map shown here I searched for the start (Winthrop, WA) and the end (Bead Lake). I then marked waypoints at each of the locations where we slept, and had TopoUSA draw the route. It was almost exactly what we had ridden, except for a few detours that we made due to roads that were closed at the time of our ride. I marked our routes around the detours using "Via" waypoints so that they didn't show up on the map. It only took about 15 minutes to get the route following what we had ridden.
Once a route is made you simply right click it and select "Profile" to get a profile map of your route. For instance this picture shows the user interface of the product, and at the bottom of the screen is the profile route for our trip. You can easily see each of the climbs that we did. It also shows the total elevation gain (Climb Elev) for our route and a number of other statistics. You can choose the statistics using the ">>" icons shown at the right of each statistic. Also on the profile you can see a small icon for each of the waypoints. When viewing the profile interactively you can get information for any point along the route. For instance at our campsite after day 1 we had climbed 6,230 feet.
You can zoom in on the the profile if you want to get the average grade for a specific climb, or if you want to get a profile map for a portion of your trip. Using this feature I was able to see that the climb up Loup Loup pass (the first pass on our trip) had an average grade of 7 percent.
Along with creating profiles you can have the software print out a route sheet, or save the route sheet to a text file. The text file isn't designed for printing directly, but can be loaded into a spreadsheet or manipulated by other programs. I wrote a small Perl script which converts it into an easy to read HTML table. Here is the route from our trip:
|Road Name||Leg Miles||Accumulated Distance|
|SR 20 (Scenic)||39.63 mi||0.00 mi|
|SR 215||5.05 mi||39.63 mi|
|SR 155 (Omak Ave)||14.17 mi||44.69 mi|
|SR 155||23.44 mi||58.86 mi|
|Local Road||0.41 mi||82.30 mi|
|Bia 13 Rd||5.04 mi||82.71 mi|
|Local Road||0.53 mi||87.75 mi|
|Cache Creek Rd||5.93 mi||88.28 mi|
|Keller Butte Rd (Bia 63 Rd)||0.07 mi||94.20 mi|
|Local Road||0.98 mi||94.28 mi|
|Cache Creek Rd||3.52 mi||95.25 mi|
|SR 21||4.01 mi||98.77 mi|
|CR 2 (Bridge Creek Rd)||5.62 mi||102.78 mi|
|CR 2 (Bridge Creek Rd)||23.49 mi||108.39 mi|
|CR 3 (Inchelium-Covada Rd)||0.80 mi||131.88 mi|
|Ferry Crossing Landing Rd||1.92 mi||132.67 mi|
|Gifford-Inchelium Ferry||0.82 mi||134.59 mi|
|SR 25||2.12 mi||135.41 mi|
|Addy Gifford Rd||12.37 mi||137.53 mi|
|Cedonia Addy Rd||0.58 mi||149.91 mi|
|Locke Rd||2.40 mi||150.48 mi|
|CR 9311 (Blue Creek Rd W)||5.14 mi||152.88 mi|
|Main St||0.06 mi||158.03 mi|
|Blue Creek West Rd (E Main Ave)||0.09 mi||158.09 mi|
|Main St||0.12 mi||158.18 mi|
|US 395||5.64 mi||158.30 mi|
|W Lincoln Ave||0.00 mi||163.94 mi|
|W Lincoln Ave||0.00 mi||163.94 mi|
|US 395 (N Park St)||0.32 mi||163.94 mi|
|E Main Ave||0.49 mi||164.26 mi|
|N Ehorn Ln||0.08 mi||164.75 mi|
|CR 2902 (Flowery Trail Rd|Chewelah Calispel Rd)||12.97 mi||164.83 mi|
|CR 2110 (Flowery Trail Rd)||9.51 mi||177.80 mi|
|CR 9205 (Westside Calispell Rd)||2.64 mi||187.31 mi|
|CR 9236 (Meadow Rd)||1.70 mi||189.95 mi|
|SR 20||2.21 mi||191.65 mi|
|5th Ave (S Le Clerc Rd)||0.59 mi||193.85 mi|
|S Le Clerc Rd||0.29 mi||194.44 mi|
|Leclerc Rd S||0.04 mi||194.73 mi|
|CR 9305 (Leclerc Rd S)||14.04 mi||194.78 mi|
|CR 3029 (Bead Lake Rd)||6.00 mi||208.82 mi|
|Bead Lake Rd||0.32 mi||214.82 mi|
|Bead Lake Dr||0.46 mi||215.13 mi||Total Distance 215.60 mi|
This software would also come in useful when travelling with a laptop. You can load CDs from individual regions onto the harddisk, and monitor your progress with a GPS unit or simply use the software to plan your trip as you go. You can also download map data to a Palm-compatible handheld, a feature which I plan to explore in the future.
I am also an occasional hiker, and wanted to be able to use this software for printing hiking maps. I've previously used Topo! for this purpose, but found that it had very outdated and incomplete trail data. TopoUSA seems to have much more accurate data, at least for the trails that I checked in the Seattle, WA region. There are still some mistakes though, for instance it doesn't show that there is a trail between Talapus Lake and Ollalie Lake in the Alpine Lakes Wilderness. This is a very commonly hiked trail here, and is correctly noted on the paper maps published by Green Trails. The other trails that I checked appeared to be accurate.
You can draw in missing trails, but the automatic routing feature doesn't work with them.
You can make 3D plots of any 2D map, which makes it a lot easier to see the surrounding area. There are limited controls in the 3D plots: you can adjust how high the surrounding mountains are (1x, 2x, 4x, 8x), adjust the angle of view, and rotate the map. I find this feature useful to get an idea of what the surrounding terrain is like. It is a lot easier to see that the route goes through a valley in this 3D map than in the corresponding 2D map.
So far I've only talked about the positives of this software, but there are a few things that I don't like about it.
My main complaint with TopoUSA is the user interface. The user interface is very clumsy, and it took me a couple of hours of playing to really figure out how to use the software. In some cases it doesn't show up properly on my computer because I run Windows with large fonts (due to owning a high resolution monitor). I think that Microsoft Expedia Streets has a much more intuitative user interface to work with. As a specific example it always takes me a few tries to search for an address or place name. You first have to tell it what you are looking for (placename, street address, object name within a region, intersection, etc). It isn't always clear what the difference between these are. How do I search for a neighborhood inside a city? Doing a placename search for "Ballard, Seattle, WA" just gives me an error of "Region 'Seattle, WA' is not recognized". I had switch to doing a search of an object name within a region. In other mapping packages that I've used you can just type a place name, street address, or intersection name and it figures out what you are looking for.
The software is also fairly slow. I have a fast modern computer (800mhz AMD Athlon with 256megs of RAM) and scrolling around the maps is extremely slow. I can't really imagine using this on something like a Pentium II 300 that most people would have bought a year or two ago.
Another problem is that the map data isn't great along complex and curvy roads. Here is a side by side example of a map from TopoUSA and a map from Microsoft Expedia for Golden Gardens in Seattle, WA. Notice that TopoUSA shows the road through the park as a couple of jagged lines, while the Expedia map shows it with smooth curves. I expect that this impacts the profile data too (I don't think that a profile map of the climb through Golden Gardens would be accurate).
Finally I have some trouble saving data in TopoUSA. In making this webpage I wanted to save some image files and that isn't straightforward. You do this by going to the print tab, then setting up the image that you want to print, and at the end clicking "Save to Disk". If you click Save to Disk right away, then change the map view to what you expect to save you'll find it saving something else entirely. There is no control over the directory that it saves images in, so you need to move them afterwords yourself. It would also be nice if the text files for routes could be saved in a format which is easy for humans to read or for the computer to read. Not everyone is going to be interested in writing or running another tool to format the data.
After playing with the software some more I've noticed that the routes that it makes don't exactly follow the roads. This doesn't always occur, but it isn't hard to find examples of it either. I believe that this makes for two major inaccuracies in routing: the leg distances will be wrong, and the elevation gain in profiles will be wrong. The leg distances are wrong because the route is shortcutting along windy roads. The elevation gain numbers are inaccurate because some of these shortcuts mean the route is climbing and descending small hills while the road is winding along a valley. I'm going to contact DeLorme TopoUSA support to see if there is a way to correct for this.
Update: I've found a reasonable workaround for this issue. If you make sure that there is a waypoint or via about once every 15 miles the routing properly follows the roads. It seems like they have a maximum number of segments between each via/waypoint that they handle. Having lots of vias/waypoints slows down the routing, but on my machine it is still reasonable. I think that it might be necessary to split routes of more than about 500 miles though.
While this software isn't perfect, it is the best software that I've seen so far for routing bicycle trips. The topographic information is very valuable, and the routing features are excellent. The user interface could be cleaned up a little bit, but perhaps we'll see that in a future update. I expect that I'll be getting a lot of use out of this package. I only wish that I had it available before the Bead Lake trip that I made last summer.