GPXToGoogleMap is a Mathematica package which translates GPX files into Google Map form. This page as well as all the maps on my cycling in Asheville page were generated using the package. The current version works with Mathematica 5.1, 5.2, 6.0, and 7.0.
From here you can download the package and view the documentation in HTML or Mathematica notebook formats.
If you don't have access to Mathematica or just want a simple web based technique to generate Google Maps (or other types of maps) from GPX data, then I highly recommend GPS Visualizer. This produces very nice output with loads of options using a simple interface.
There are many ways to visualize GPS data on a Google Map, as a Google search for GPX to Google Map will show. GPXToGoogleMap is distinguished by its implemenation in Mathematica and its focus on efficient rendering of complicated data. GPX tracks are rendered using encoded polylines and waypoints are automatically clustered by proximity. A GPX file with a few thousands waypoints and several tracks consisting of tens of thousands of points each can be handled fairly easily. The GPX file for the map on this page contains nearly 400 waypoints and two polylines with about 3000 points each. It was generated with the following simple command.
Needs["GPXToGoogleMap`"];
GPXToGoogleMap["GPXToGoogleMapDemo.gpx",
ClusterOptions -> {SmallTol -> 0.00025}];
Map created by GPXToGoogleMap from GPXToGoogleMapDemo.gpx (save as source to view).
GPX data contains: 391 waypoints, 1 route, and 2 tracks.
Track 1, called Blue Ridge Parkway, is 475.451 miles long.
Track 2, called Interstate, is 399.023 miles long.