Activity Workshop
 

GpsPrune problem-solving

The following sections address possible problems encountered when running GpsPrune, and suggestions for solutions. It should be read in conjunction with the how-tos page which describes how to complete common tasks. If you have any questions or feedback please use the email address at the bottom of the page.

Using a proxy server

If you do not have a direct connection to the internet, but you have a proxy server, you can use this proxy server to fetch the openstreetmap map tiles for use in GpsPrune. To do this, you can set the java runtime's system properties when you launch GpsPrune, like this:

java -Dhttp.proxyHost=myproxyserver.com -Dhttp.proxyPort=80 -jar gpsprune.jar

Where of course the proxy host name and port number should correspond to your local settings. And of course you can include these parameters in your shortcut or alias so that you don't have to type them in each time you run GpsPrune.

Running on Mac OSX 10.4 (Tiger)

If you have Mac OSX 10.4, Apple provide both a 1.4 java runtime and a 1.5 java runtime. GpsPrune requires at least version 1.5 of java to run, so you need to make sure that your system uses the 1.5 runtime. By default, OSX will try to use the 1.4 runtime, so GpsPrune will fail to start with the error "UnsupportedClassVersionError". You should be able to check your java version by typing java -version in your terminal window.

According to this explanation at macosxhints.com you can change the preferences of your system so that it uses the 1.5 runtime by default, as follows:

For Java applications that are supplied as a ".jar" file, the settings in the "Java Application Runtime Settings" section of the "Java Preferences" app will determine which Java version is used when you double-click the ".jar" file in Finder. If you drag the "J2SE 5.0" to the top of the list in the "Java Application Runtime Settings", then a double-clickable jar application will use Java 5.

There are also other ways to specify this as detailed in the above link, including adding scripts to be able to switch back and forth between 1.4 and 1.5. You should also make sure you have the update from Apple called "JavaForMacOSX10.4Release7" to get the latest version of 1.5.

Using Chinese and Japanese fonts

It might be that when using the Chinese or Japanese languages, the Chinese characters appear as empty squares instead of the proper characters. To get the display working properly, you have to make sure you have Chinese fonts properly installed (just because Firefox displays them properly isn't always enough). For example, on Mandriva you have to install an extra package "fonts-ttf-chinese". The second step is to let java know where to find these fonts. This is platform-dependent, but it may mean adding a shortcut in the java runtime's font directory. Again using Mandriva as an example, the fonts are installed in /usr/share/fonts/TTF/chinese/ and the java runtime looks for its fonts at /usr/lib/jvm/java-1.6.0-sun-1.6.0.10/jre/lib/fonts/, so to let java find them you need to make a link:

cd /usr/lib/jvm/java-1.6.0-sun-1.6.0.10/jre/lib/fonts/
ln -s /usr/share/fonts/TTF/chinese/ fallback

Thanks to Li Zhao for the tip!

By the way, don't try this on Debian Lenny - bugs in the font manager defoma may break the system and prevent you from logging in :(

Using gpsbabel under linux

It seems like there are (still!) common problems with running GPSBabel under linux, especially with USB Garmin devices. Sometimes you may get an error message about a module "garmin_gps" blocking access to the USB device, other times the error message is not so meaningful. Basically there are two main problems - this garmin_gps kernel module may work for some people but doesn't work for many. If it doesn't work, the kernel module has to either be removed (with rmmod garmin_gps) or, better still, blacklisted by an entry in the file /etc/modprobe.conf using a line like "blacklist garmin_gps". The exact location of this modprobe.conf file may depend on your distribution.

There is also a second problem using certain linux distributions, in that the root user is then able to call gpsbabel successfully (using the device "usb:"), but normal users are not, and just get an error message about a module ''. Again the solution to this appears to be distribution-dependent, but it often involves making a new rule file for udev. For more information see gpsbabel's linux page. Note that on some distributions it was okay to say group="plugdev" before, but newer versions of udev only seem to work if it's uppercase GROUP="plugdev".

What is a waypoint? What is a trackpoint?

Some of the terminology used in GpsPrune might be confusing if you're not familiar with using GPSs. The myriad of file formats and strange terminology (routes, tracks, waypoints) might be overwhelming. This is what I wrote in an email to someone asking about the differences:

Firstly, it is important to understand the difference between "track points" and "waypoints". As an example, let's say I walk from my house to the bakery. I switch my GPS on at my house, and make a waypoint, called "HOUSE". Then I record the way I walk, with lots of points, and then when I get to the bakery I make a new waypoint called "BAKERY". When I load this data into Prune, I get two things. I get two waypoints, and I probably get them in alphabetical order, so that's "BAKERY" and then "HOUSE". The order doesn't matter, but these two points have names attached to them. They may have timestamps too but probably not. I also get lots of track points, all without names, but here the order does matter, so I get the points in the order in which they were recorded, from my house to the bakery.

The basic point types can be summarized like this:

Using gnuplot under windows

For drawing charts from GpsPrune, and if you're using a Microsoft system, don't forget to call the program "pgnuplot" (rather than gnuplot). If you call gnuplot, the chart will be drawn but will disappear again immediately. To fix this, go to Settings -> Set program paths in GpsPrune, and give the path to pgnuplot.exe instead. See the gnuplot faq for more information on this. Thanks to Javier for the feedback.

The charts function doesn't do anything

If you've got a recent version of Gnuplot, it could be that the charts under View -> Charts stopped working. Whether you choose to output to screen or to an svg file, some setups give absolutely no output at all, or a warning message or any kind of terminal output. Unfortunately this problem affects older versions of GpsPrune too, even if they were previously working fine.

The solution I've found (which works on the linux distributions I've tried but may be different for other distros) is to manually install the package "gnuplot-x11" which has the effect of also removing the package "gnuplot-nox". The addition of this x11 package allows gnuplot to use the terminal called x11, which isn't otherwise available, and so the output to the screen can't work.

I still have two mysteries, firstly why the output to file using the terminal svg doesn't work in this case, and secondly why the nox package is installed by default. I guess that GpsPrune's package should have a recommends entry for the x11 package too.

Uploading to gpsies

Problem 1 - the track seems to upload ok but when I view the web page, it just shows me the main gpsies page and I can't find my track!. Answer - probably your username and/or password is wrong. Gpsies doesn't give any error message if the login details are wrong, so it looks like the track has been uploaded but it hasn't. Check your password by logging into gpsies.com in your browser. If that works, then the same password should work from GpsPrune too.

Problem 2 - the track seems to upload ok but I can't see the track because it's "locked"? Answer - if you marked the track as "private" when you uploaded it, then you can only see the track details if you're logged in in your browser too (obviously). Log in and try again, if you want to make the track public then go into the "Edit or delete" section and change the track status.

Problem 3 - the track doesn't upload properly, it just gives an error "Die Datei enthält keine Daten. Bitte wähle eine neue Datei aus". Answer - gpsies ignores waypoints, which means all the points with names. If your track only has waypoints, then gpsies thinks the track is empty. To turn the waypoints into track points, select a range and then use the "Delete field values" function for the "name" field to delete the waypoint names. You'll probably want to do a "Merge track segments" operation too to join the track points into one big track segment so that you can see it properly in gpsies. Now do the upload again.

Known problem: MacRoman encoding

A problem with saving of GPX files on Mac OSX has been reported (thanks, Erich!). We've been through XML-encoding problems before, so now GpsPrune asks the system which file encoding is being used, and writes the name of this encoding in the file. Apparently though there's a problem with Mac OSX, which reports that it's using the encoding called "MacRoman", but actually writes the file using UTF-8. So if you want the file to be readable by other programs, you apparently have to go and edit the file, to change this "MacRoman" specifier to read "UTF-8" instead.

I haven't had chance to verify this problem yet or find a reasonable solution. If anyone does have an elegant solution, please let me know!

Wikipedia functions

The services which GpsPrune calls to find wikipedia articles are provided (for free) by geonames.org. If the server gets overloaded, it will just return error messages - the best thing to do is just wait and try again.

OSM download function

The function to download OSM information for the current track area used to use OpenStreetMap's XAPI, but this now seems to be discontinued. GpsPrune now uses their Overpass API instead, and it seems to work well, but as has been said before, OpenStreetMap's own export function has improved greatly recently, so perhaps GpsPrune's function is superfluous. Feedback?

Errors loading GPX or KML files

Apparently there is a known problem with java's standard xml-parsing libraries failing to cope with XML files with version 1.1 (almost every GPX and KML file I've ever seen uses XML version 1.0). The bug is annoying but what's worse is that it doesn't give any error message or anything, it just delivers the wrong values, usually for the latitude value in the cases I've seen (thanks to the GpsPrune user who alerted me by email).

One solution is to edit the files to say xml version="1.0" instead of 1.1, and this will probably work unless your xml file really relies on the special features of xml 1.1. Another solution (if you have GPSBabel installed) is to use GpsPrune's function "Import file with GPSBabel", but that's awkward to do for every file. Another solution in the works is to use an external xml library called Xerces to do the loading instead. Xerces will then still be optional, and not necessary if you only deal with xml 1.0 files, but if you do need it then you can download and install it separately.