Is there an app to disable everything but GPS on iPhone?
If jailbroken, SBSettings allows one to turn off everything: Data, Wifi, Bluetooth, 3G, Edge, Phone, SSH, etc. but leave GPS enabled.

If not jailbroken, Settings > General > Network lets you turn off WiFi, 3G, BlueTooth, and Data, which leaves GPS, Edge, and Phone. Turn brightness all the way down. This ought to extend battery life quite a bit.