I am making an application that requires user to send their GPS location to the server. I need it to be done for say every 10 seconds, which is heavy on the energy budget.
I would say build your own so you can get exactly what you want and avoid running extra code since you are concerned about the energy usage. I would do exactly what you suggested and use the GPS sparingly, maybe every 30 seconds or every minute to get a reference for your calculation and then use the compass and accelerometer in the interim.