To save you some reading, the crux of the hack is to consider a weak GPS (etc) signal not as a lack of data, but rather as a source of data in itself: the fact that the GPS signal is weak tells you something about the user's probable location.
Isn't this exactly how location is always done without GPS? Look at the strengths of all the radio signals we can see, and match against known locations? Admittedly it's previously been primarily cell-towers & wi-fi, not GPS signal strength, and I thought most of the previous data had been collected by people that also had GPS, not via foursquare checkins...
If not, why does my Android phone ask me to turn on wi-fi to enhance location information?
Edit: To answer my own question, the Android source code for this used to be available. At the time, they passed the visible wi-fi SSIDs and the cell-tower IDs, but not the signal strength (they had it in both cases). Not sure why they didn't pass the strength. Maybe it made caching really hard; maybe it sufficed just to pass them in order; maybe it didn't make a big enough difference... http://www.netmite.com/android/mydroid/frameworks/base/locat...
To me, this actually raises more questions. It's so surprising to me that Google don't pass the signal strengths ("everyone knows" that is how triangulation works), that I'm thinking the real secret is that the signal strength isn't actually helpful. In other words, I'd bet Google tried what FourSquare have discovered, and rejected it. Or it's patented :-)
Consider that Foursquare has extra data: Checkins.
They know that when certain location data sources provided chertain signals, the user in question checked in at a location with a known map position and known constraints to the location.
There aren't many sources of location data with that extra information.
The primary purpose of WiFi to enhance location information is to bootstrap the download of current GPS orbits (the ephemeris) [1].
More advanced techniques relying on radio signal strengths, RTT time, and other observables [2] are being developed but I don't know of any in widespread use. I wouldn't be surprised to see something emerge soon though.
Google actually does collect wifi location data via Android devices. There's a setting that allows you to toggle this data on/off. If you turn it off, it actually disables the course location API available to Android apps (I recently encountered errors with both the Lux and the UCCW Android applications due to the fact that I had this setting disabled and those apps only had course-location built-in).
Now whether Android actually uses the wifi data to determine location, as opposed to simply collecting it and manually disabling course-location if you don't send them wifi data, I have no idea. It does seem to be related though to the new Geofencing API available in the latest versions of Android.
Skyhook absolutely relies on radio signal strengths and other observables and so do Google's location services.
This can be observed in practice as Android tablets and Apple devices with no GPS or cell radio at all can still locate themselves relatively well.
http://www.skyhookwireless.com/apps-enterprise/ has the marketing-bling diagram of Skyhook's use of multiple observables to determine location; even as of 4 or so years ago when I last used their API you sent them MAC + RSS and got back location.
Indoor positioning methods are being developed, outdoor methods are in use for years now. It's how positioning works on your laptop, e.g. in Google Maps.
> Foursquare already had a massive database of check-ins — location information about the places its users most liked to go. And this data didn’t just include the place where someone had checked in. It showed how strong the GPS signal was at the time, how strong each surrounding Wi-Fi hotspot signal was, what local cell towers were nearby, and so on. Leveraging this data meant that Foursquare could still grab a good current location even if users were underground, near a source of radio interference, or facing some other signal obstacle. Chances are, some prior Foursquare user had seen the world through the same flawed eyes and reported his or her location.
This sounds more valuable as a technology than the social network side of the business itself.
If another company wanted to build up a similar database of location information, they could send out a fleet of its own staff all over the world to collect it, à la Google's Street View cars. But Foursquare has managed to sidestep all of this expense and infrastructure by harnessing its userbase as a massive, free source of data input.
Through badges, recommendations, and deals with local stores, they've created an incentive to provide the data they need. And through the mechanisms they have to prevent cheating in the game side of things, they've accidentally developed a way to ensure the accuracy of the location information their system can provide.
Licensing out this technology could become the long-sought-after profit engine for Foursquare, paying the bills for the flashy social network layer on top that keeps the data flowing in.
>> It showed how strong the GPS signal was at the time, how strong each surrounding Wi-Fi hotspot signal was, what local cell towers were nearby, and so on
That quote struck me as very strange. Why would they collect all that data in the first place, anyway, if not to do exactly this?
Foursquare has measures in place to prevent people from gaming the check-in system--to keep people from faking check-ins and gaining badges and mayorships that they didn't earn. From what I've gathered, they collected this information originally to prove that someone was really at the location where they claimed to be.
Foursquare is looking years ahead, it seems unlikely that they'd switch to a short term strategy. You have to assume that this technique will be adopted by Apple & Google at some point.
I thought they already were using all this information to figure out your location. Google Maps knows pretty much exactly where in my building I'm sitting at with my laptop (I live in a long building spanning a block and the dot is over my apartment). So maybe not all that information, but going from the idea of fingerprinting a location with WiFi networks to other kinds of radio signal information doesn't really seem like a huge leap in thinking (though perhaps the implementation is tougher)
A bit of background - "geofencing" has been around in iOS as part of Core Location since version 4.0. Given latitude and longitude, you can pass in a radius and create a circular region (or specify a set and create a rectangle), with callbacks that trigger when the user enters or exits that region.
One of the main points in the article is that it's particularly battery intensive to update the user's location, so there's a trade off between accuracy and battery usage. To try and solve this, Apple created a hierarchy of accuracy constants, which range from "best" to three kilometers, but it's only somewhat effective at preserving battery life.
The other strategy is monitoring "significant changes" in location, based on cell towers/wifi signals. For this, Apple provides a method called "startMonitoringSignificantLocationChanges" if your app needs to constantly monitor the user's location.
From what the article said, Foursquare is trying to improve these methods by creating probabilistic maps so they can draw better regions for each user, and therefore check for location updates less frequently. I'm assuming there are similar methods for Android.
Summary:
FourSquare is moving from a checkin service to doing positioning data at higher accuracy and lower power based on big data. http://www.skyhookwireless.com/ does the same thing. Maybe not as well, but generally the same.
Hyperbole aside, I thought foursquare was an excellent idea - and if more businesses around me used it, I"d probably still be using it myself. (Reading the article, it seems that if you live in NYC or SF it's a lot more useful than it's been to me.)
As it is, I think the last time I even looked at it was nearly six months ago.
"if you live in NYC or SF it's a lot more useful than it's been to me"
It seems like services that bring people from vast geographic distances (e.g. Facebook, Twitter) have a longer life than services the geo-limit the audience. If you're in NYC, SF, or LA, geo-limited services work due to density, but you the threshold seems to dive after a couple of cities down the list. Color was the ultimate example for me on something that was so geo-limited that I couldn't imagine it working.
What did Colour actually do? I thought it was something about showing pictures taken near you, but I gave it a go in Sydney Australia; either no-one was using it here or I was using it wrong due to the pretty but meaningless interface.
It basically was a hyper-local app that would gather pictures from multiple people at an event. You basically had the same luck that people in rural areas would have with that app as it was useless outside an "event". I do question the wisdom of using an app to bring people together that are already together.
It's the density that make Foursquare more popular in SF and NYC but rather the demographics of those areas, modern, high tech centers of urban sophistication. The fly over states are more concerned with the latest developments in pickups and gun racks to care much about checking in at the hottest espresso bar.
Yeah, if only those rednecks in places like Huntsville, Alabama (most engineers and PhD per capita) or Houston would stop focusing on banalities like jet propulsion[1] and subsea robots[2] and spend more time "checking in" to bars on their cell phones, then they could perhaps catch up with the futurists living on the coasts.
"The fly over states are more concerned with the latest developments in pickups and gun racks to care much about checking in at the hottest espresso bar."
I hope with that username this is a parody account because that line is by far one of the most ignorant, prejudice lines for HN.
While it's true that people in rural areas often don't care about the same things that people in big cities care about that doesn't mean they are oblivious or opposed to new technology.
I have a friend who is a commercial poultry farmer in rural Mississippi. He can turn on his chicken house feeders from anywhere in the world with a smart phone app. Some of the coolest technology being built is farm-related. People, no matter where they live, just want technology that makes their lives better in some way.
From NYC and I use it almost everyday. Especially when traveling and looking for things to do and places to go, foursquare is quite useful. It replaces Yelp for me.
this is basically spot on regarding my use as well... where I live, foursquare is marginally useful, but when I travel to NYC/ SF/ DC it is usually one of the first apps I open and I find it pretty valuable.
This problem isn't solved yet. For me at least. I turned on the passive notifications, and they started going off when I was traveling on above ground sections of the subway. Or when I got out by my office.
So I turned them off. Somehow Foursquare needs to crack working out when I want those notifications and when they're irrelevant. They should have enough data to do it.
Yeah, I've been using 4sq for years and still do, but just don't have any use for the passive notifications. They only crop up when I'm going somewhere or doing something already. Most amusingly, they've been showing up on flights lately and they are actually correct. Not sure how that even happens since I know Google's WiFi database tends to just have the wrong location for train and plane WiFi in my experience. I'll hop on a train in NYC and it will say I'm in Boston.
I've actually never used Four Square myself but I saw a lot of people use it back in the day... This new feature seems like just the stepping stone for them to implement what they really want, so hopefully in the near future it'll process the type of data you two have mentioned here.
I always loathed Foursquare because it interfered with social occassions. You and some buddies walk into a location, and suddenly everyone has to take out cell phones. It's relieving to hear that the company's strategy was always to become less obtrusive. I may actually download the new app now.
I've actually found it to be a social benefit myself. Most of the people I go out with use it and we tend to compete and discuss what picture and tagline we're going to use and who is better and who checks in first. Much of the time the conversation later goes on to what cool things our friends did lately or if we can tell it is snowing somewhere better through 4sq or Instagram, often with much showing of the phones to each other.
I guess younger generations build technology into their lives whereas for older people it is just an interruption. Try just friending everyone everywhere you go and eventually you'll have cool people all over the world doing fun things that can start conversations instead of stop them.
"I guess younger generations build technology into their lives whereas for older people it is just an interruption."
I hardly speak for every obsolete senior citizen over the age of 25, but its more of a perception of what is good or bad taste rather than neo-amish-ness. Social etiquette. For any elderly geezer over the age of, perhaps, 30, walking into a social occasion and ignoring the meatspace people to instead play with a phone would be considered intentionally highly insulting. If gentlemanly behavior means always doing everything possible to increase the comfort of those around you, which is a reasonable short definition, ignoring people to play on the phone doesn't score very high.
On Europe and Foursquare: is it just me or their data quality in Europe is really weak?
A couple of weeks ago I tried using an app that uses foursquare's API and I couldn't find 4-5 restaurants in London I wanted to tag/save (each time I was sitting at the restaurants in question). Instead I had to use Google Maps to save the location of these places, otherwise I couldn't of done so.
Funny enough, I prefer to disable any existing notifications so that I can walk about or sit around undisturbed. (SMS and phone calls are ok, but mostly because I get them so rarely and if I do they actually might be important.)