I'm pretty much ignoring all of these discussions about various applications and map formats.

Many of the links that are repeated over and over are raster/bitmap based 'map scrollers', which boils down to a georeferenced image that is moved along depending on your location. i.e. it won't tell you how many miles to the next turn and what the name of the street is. They typically depend on having a lot of colors and higher resolution to avoid screen clutter, it is probably possible to get something like that to work, and possibly a lot simpler even than the current gpsapp, but I don't find it interesting.

Then I really love those, look at this link, maybe gpsapp could use some of their code. But when I go there there is a trivial 'block diagram', and an overly bloated user interface specification that shows that someone doesn't know that all GPS receivers can/will use the WGS84 datum, and that simple SysV ipc system calls do not become 'clearer' by wrapping them like DoReceiveQueuedMessage(foo, bar) { ipc_rcv(foo, bar); }. However there is no code.

And finally, any open specification format (GDF/Shapefile) does _intentionally_ only document the interchange part of the dataset. The important part for routing and mapping applications are the spatial indexes. There is surprisingly little information in this area documented, and most of it is guarded closely by patents.

I've mostly been looking at using a geo-hash in a simple flat database, or a 2 dimensional quadtree index. Converting from whatever to whatever is trivial compared to having to efficiently find routes across a continent when you have every single road in your dataset. It takes my desktop a considerable time and a lot of memory to find the 'optimal' route between 2 points in a single city. Of course I don't know much about routing, but I'm sure that some heuristics can give an almost optimal route in hardly any time at all. I still do have to 'reinvent' those heuristics.

So really I don't care about gdf, shapefile, teleatlas, or whatever else there is, they are 'exchange formats', and not readily useful for actual use. Sorry for blowing up there for a second, but it is really ridiculous, I see the same links pop up in different threads and nothing useful or even realistic is added. The difficulty is not reading the data off the disk in whatever format it is stored. It is how to read only the data that we're really interested in and what to do with once we have it in memory.
_________________________
40GB - serial #40104051 gpsapp