Why not just use a 3rd-party app like iGuidance for GPS?
If you're going to support external apps anyway, you could support GPS that way for starters, and then do your own later on if you really want to.
I became partial to Microsoft Streets and Trips maps. They are quit in depth. So I used what I knew about the Windows API and in a sense barrowed it and put it in my program. Call it a hack but I thought it was cool.
You struck my intrest with iGuidance. I am going to take a look at it and possibly replace Microsoft Streets and Trips.
I've used both, and iGuidance has a more touch-screen-friendly UI, so it's the one I prefer.
But my point was just to use an external app (any external app) to do GPS.
In fact, that goes for any feature for which decent apps exist. That will let you get a front end with more features with less effort. Then, one feature at a time, create built-in versions of the features that would benefit most from being built-in.