See this description?
"The ZoneTag client runs as a background process, monitoring the cell tower to which the phone is currently connected (which provides a rough location) and possibly communicating via BlueTooth to a GPS device, providing much more exact location information (and also providing a mapping between cell tower and physical location.)"
OK, how do we do that in Objective C on the iPhone? ZoneTag is used by Yahoo's Flickr service.