I have a pile of GPX-formatted tracklogs for many countries where I've travelled over the years (the GPS-device has been continuously on and recording for most of the trips). I would now like to analyse the logs automatically to extract a list human-readable names for the places that I've visited. For example:

  • detect and name border crossings
  • detect and name inhabited places where I've stayed longer

Does there exist ready-made software (preferably free and open source) that can be used to perform such analysis?

(By "tracklog" I mean: a sequence of timestamped longitude-latitude pairs.)

  • What region(s) Do you need it to cover, for things like inhabited places?, or do you already have that sort of data? Commented Sep 16, 2010 at 11:14
  • Nope, I only have the GPS data. I would like to cover at least East and South Africa, South America, and Southeast Asia. I guess that data/soft is there already and also freely available: Google can map coordinates to human-readable placenames, Wikipedia/DBpedia could be used to detect what places are "inhabited", etc. I'm just wondering if anybody has packaged all this into a user-friendly software tool...
    – Kaarel
    Commented Sep 16, 2010 at 16:26

3 Answers 3


What I would do is convert the tracklogs to shape files probably preserving the dates as an attribute. (this can be done with free software for gpx2shp). Then use something like qgis (you mentioned free opesource) with data for each of the intersections you want (i.e. country borders, province/county borders, cities [as polygons and points]). Qgis has many plugins and a great community on the forum [email protected]. Someone there will be able to help you accomplish this. BTW osgeo4w is an easy way to start with qgis if you run under windows.


NGA GeoNames(1) will get you point names for most of the named placed in the world.

ESRI uses that to make their own locator(2) service for ArcMAP.

What you want is some code that will basically use the IReverseGeocoding interface to "geocode" your list of lat/lngs and find the closest "named" place to where you were.

I think the other stuff (border crossings, variable stay length) you can do within the context of some code.

If you want to do this the open source way, than upload your data into a postgis table and then use gisography's worldwide reverse geocoder (3) to get names out of your latlongs.

:refractored because of that BS about only 1 hyperlink :)





This open source tool is designed for geotag photos, but perhaps it can help you: http://geotag.sourceforge.net/?q=node/1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.