I just spent a couple days reading through the MapPoint API and putting it in a program, etc. Finally, I found out there is no access to the GPS information.

In order to avoid doing this with all of the available programs, I'm curious if anyone could offer advice on which navigation programs have the most programmatic access. If so, please do.

Specifically, is there any program that:
  • allows programs to access the names and coordinates of upcoming intersections (or ones at which a turn occurs)

  • allows access to data from the GPS unit without using a low-level driver to clone the port

  • provides a way to do all the common stuff (like get directions) with programmatic responses, not just by showing the results on the screen

Specifically, it would be really great if there was an application where I could substitute out any component of the application with my own alternative. For example, using the windows speech API to provide voice control, rather than using whatever may be built into the application.

I realize that most likely there is nothing like this. So, I ask: what is the program that provides the most control (i.e. all the basic stuff and the most useful additional data)? I realize this is subjective, so explanations of trade-offs would also be helpful.