When the iPhone 3G was announced with built in GPS, native applications and of course the same always online tarif, a lot of geogeeks got a little bit excited. We hoped it would be a great platform for tracking your location in realtime using services like mapme.at. Unfortunately it's just not possible in the way we wanted. Apple, in their infinite wisdom, decided to lock down the phone as much as possible and remove all the those places where third party developers could degrade the experience. One of the features to go was the ability to run an application in the background. Now you could keep an application running and still lock your phone, but as soon as you want to use your phone for something else you have to close it, then remember to open it again.
I didn't want to jailbreak my phone, so I started thinking of other ways I could locate it. One thing that occurred is that if you could pick up what IP address the device is getting online with you could use that to find a location. Geocoding IPs is notoriously flaky, but if it's just a limited set of known locations, such as home, office or your regular coffee shop, you could tie them to the locations and it would still be quite useful.
So how to get the phone to constanty report it's IP address? Well there is one background process that is allowed to run on the phone, and that's the mail checking. So all I needed to do was write something that appeared to be a mail server but simply tracked the IP address. After a little chat with John we decided the integrate this into mapme.at.
If you want to try it out, just set up an account on mapme.at, under the sources tab you should see an email address with a code followed by @email.mapme.at. Then on your iPhone set up a new POP account, the pop server is pop.mapme.at, and the username is the full email address from the mapme site. The rest of the details can be anything you want.
To start linking IP addresses to locations add new favourites on mapme, then click the "Insert IP tag" to link the network you're currently on to that tag. If you want to add other addresses you can type in the tags manually.
I think the next stage is to integrate (or even built) a shared database of geocoded IPs for public hotspots.