As other posters noted, Skyhook and Google maintain their own location databases for SSIDs and cell IDs. I believe that Geomena is trying to open an open database of localized identifiers, but it still does not have the breadth of coverage that patented competitors have. Google also provides a simple JavaScript client interface for IP geolocation (called ClientLocation), which can be reasonably accurate for some applications and there are a large number of IP geolocation databases.
If your application is web-based, you can use the W3C Geolocation API, which abstracts out specific geolocation technology and gives your website access to any geolocation method that the browser prefers to use. On iPhone, the Skyhook database is used to locate the phone using a mesh camera or a Wi-Fi or GPS location; Firefox uses the Google Location Service, which uses WiFi triangulation and refuses IP geolocation.
Using some level of abstraction (for example, the W3C API) can have real benefits if you want your application to run on different platforms that have their own location methods, if you want your application to degrade intelligently when only rough ones are available geolocation methods and you want your application to receive the benefits of additional accuracy, as your customers have upgraded to devices with GPS technology.
source share