I'm racing in the Philly Phlyer this weekend. I've never been on this course before, so I did my homework and found - voila! - a representation of the course as a Google Map, through a service using the Google Maps API. Better yet, this service (using a script that broke Opera but worked in IE) allowed me to save the route as a Google Earth .kml file.
What did the .kml do for me? I could see the route in Google Earth, but that's about it. I wanted to be able to see a profile in DeLorme Topo USA, or export the route for tracking to my Edge 305 GPS, or save it in what ought to be the industry-standard .gpx format. What's a man to do?
After some massaging, I was able to use GPS Babel to convert the .kml file to a DeLorme .gpl data log, which appeared as a bunch of dots in Topo USA. I was then able to trace the route, get my profile, and realize that the course has a nasty downhill going into a sharp right turn. Sigh.
The next step was to get the file onto my Edge 305 GPS. The Edge 305 is such a convoluted device, that one has to use a special file format with special padding using their special software to get something that almost works. Thank you, Garmin. Thank you. I was able to use gpx2crs to convert the racecourse to a Garmin Training Center .crs file. I had to disable automatic turn generation, and add a point every 30 meters. I eventually got something that the Edge 305 would display on its screen.
As a computer scientist friend of mine noted, everyone is indeed using one standard file format: XML. Great. That's almost like saying all computers execute binary instructions of some sort. Having the data is half the battle, using it is the other half.
Why is this so hard? This is absurd. I have a real interest in having incredibly precise maps, as they offer a competitive edge. Lots of smart people are working on this. Guys, make it easier! I'll do my part.