We have started developing an application for location aware emergency service. The users can connect through computer,smart phone or even through WAP.
The problem we are facing is, we don't know how to get the location of the user who is asking for service. If it is GPS enabled smart phone, it can be located though the app. I have seen google map locating the cell phone using BTS tower's location in GPS-less smart phones (Like Nokia E-series). But I couldn't find any API in Nokia site which I can use to get that location or BTS tower based locating service.
And the main problem remains for the computer. It is enough if I can locate the city for computers. I have seen in several sites (like ip2location.com) locating the IP address up to the city level (sometimes more). Isn't there any other way to locate IP address for free of charge?
If I summarize my questions-
- How to get BTS tower based location service for cell phones?
- How to locate user's IP address upto at least city level ?
- How to convert the latitude-longitude into address (at least up to city level)? free of charge?
- How to convert the address into latitude-longitude? free of charge?
Thanks in advance.
Number 4 is geocoding (and #3 is called ...... reverse geocoding)
Look at the source for android, it seems to triangulate based on cell-tower (when no GPS or WiFi are available)
There are a few common providers of cell-tower triangulation (or increasingly common, WiFi network triangulation): Skyhook Wireless, Google and Apple.
You could try to make deals with these companies, or install their custom software on everyone's devices, but that sounds like a lot of work. I think more successful will be to take advantage of some framework abstraction that will work on a lot of devices without your software having to deal with each detail.
The W3C Geolocation API provides an implementation-agnostic access to a device's current location for modern browsers (on desktop, laptop and mobile) that support it, if your users are using the Web. As you've seen, there are also native platform-specific frameworks (CoreLocation on iPhone and Mac OS X, the Windows 7 Location Platform, Android's LocationManager, etc.).
As mentioned already, geocoding and reverse-geocoding services can help you with the step for translating between lat-lon coordinates and civic addresses, and vice versa.
If you don't care about super-fine accuracy, and you don't want to annoy your user with an alert requesting their permission to access their location, then you can make use of something like FreeGeoIP. I've written a small jQuery plugin that makes use of this. See the Locaternator. Supports jsonp
requests too so you can use it from any website, including static html only webs.