iOS (and android?) have the option to only share gps while the app is running. so for the taxi app example you're sharing no more info than you need to really. turn it on, call a cab, cab arrives, close app. The only info shared is your pick up location. Of course the cab itself could share your destination but I don't see how you'd prevent that as that info is also relevant to the taxi