My iPhone 3GS makes a pretty impractical GPS even in areas of good coverage. It might be better if you could have maps downloaded to the device rather than getting them live over the air (there must be apps that work like this, surely?) but it's still not powerful enough as a GPS receiver to be useful. I don't know if the iPhone 4/4S or any android phones are better in this respect, though I've heard good things about the Galaxy S2. Also battery life is poor - you'd need a dynamo + Reecharge or similar to use it on a ride of more than a couple of hours.
d.
I'm surprised at the 3gs having dodgy gps ... its probably equivalent to my old htc desire with regards to hardware specification/build
quality and my old htc was excellent at sniffing out 10+ gps satellites whilst indoors.
There is a bit of a work-around if people really wanted to stick with cheap and cheerful.
Get a ZTE RACER (£50 on 3 i believe) and load a free app called:
gv-sig mini-maps.
For a start this phone has no real brains, so the battery life is very good, better if you turn screen brightness down,
shut off wifi/bluetooth and .... once you have selected the "offline" mode of gv-sig and downloaded the "map tiles" for the area
you are exploring *switch to aircraft mode*.
Basically you are making the phone deaf/dumb/mute and only using it as a sat-nav!!
I've got one and have used it for 13 hours straight as a navigation only device.