Well given Android is (at least partially) open-sourced, is it possible to search their source code for their Wi-Fi geolocation API? Implement that as a loadable bundle to prevent licensing issue. (this CoreLocation clone can be LGPL so that this bundle, probably under Apache license as derived from Android source code, can link against, and GPL code can load non-GPL code to run or Linux will under dilemma)
That sounds good, doesn't it?
From what I understand, the problem is it's using Google Maps API, safely tucked away in the Google Maps application, which is not licensed under an open source license.
The reasons why Apple implemented the service themselves are probably financial: they are staff-wise and financially stuffed enough to handle such a big project, and the financial impact of licensing this from a third party is probably also sufficient enough that they don't want to hand over the implementation to a third party.
And since we are searching code, how about tap into cellular geolocating (use cell towers instead of Wi-Fi hotspots) as well?
How would you do that on a computer without access to a GSM modem that would list all the cell towers and signal strengths?
Or can we crowd-source the location information of Wi-Fi hotspots ourselves and set up our own servers for this? All this needs is pretty much a smartphone app, as it can allow users to submit base station locations using existing platform-specific location services. If I have the honor of implementing it, I will make sure it will remain free and open sourced.
Sure, you can; how much information will you have about Croatia? :-)
That is, wherever the information is actually needed, you won't have it. It takes years to build a comprehensive and useful database, even for someone with installbase like Google and Apple. We don't have that.
It might be a fun project; and if it works out, there'd be something that could also be offered commercially.
On the other hand, once a project grows enough, you'll need even more information to weed out attempts at spoofing information. And so the circle closes: you need to focus on this service full-time in order to make it useful. Which is why there's such a small number of companies doing this. (Not to mention that anyone that's not giant-sized is probably venture-backed, or not oriented at customers at all, but at b2b.)
Not to mention you're actually mapping private information (MAC addresses) to physical locations; something people don't take kindly to when Google's doing it, something people are not really aware Apple is doing and something they're not aware Skyhook Wireless did.
Also, since we are implementing this, how about bring MapKit into this equation too? THere is an existing MapKit port to OS X that depend on CoreLocation using Google Maps API. I am not sure if it is useable with GNUstep (or mySTEP's) CoreLocation port.
Sure you could. But, Google Maps is also a commercial API.
You'll really want to examine the licensing and pricing before suggesting that the ultimate solution to the problem are Google's offerings :-)
While Google has historically offered many services for free, and is still offering many services for free to consumers, that is no longer the case when it comes to developers.
I have previously signed up for their console, which has a handy list of services, including those with "courtesy limits" -- that is, free trial limits. There may be another handy list somewhere else, but this is where I found it:
"Google Maps API v3": Courtesy limit: 25,000 requests/day • Pricing
"Google Maps Geolocation API": Courtesy limit: 0 requests/day • Pricing
Note the zero next to "Geolocation API". :-)