I go with both Google Location Service and Verizon Location Service. They both do
not use GPS, and therefore do not chew up battery. I believe Google Location uses mostly wifi data to determine where you are, although I've read that it also may combine it with some GPS data as well as cellular data. See this article:
Location-based services - Maps Help
Verizon's Location Service figures out where you are based on the location of the nearest cellular antennae.
If you need very precise location (like if you use your phone a lot for navigation), then you should probably turn on GPS. Otherwise the other 2 are usually adequate and use less power.