While I am the developer of the webOS foursquare app, this post is platform agnostic as it reflects on issues related to all modern mobile GPS devices.
As a developer of a foursquare app, I search the web for lots of foursquare-related posts so I can stay on top of things. I’ve noticed (mostly on Twitter) people complaining that the new anti-cheating methods keep saying they’re too far away from the venue and are not awarded any points, badges, or mayorships.
So, why does foursquare yell at you for being too far away? The simple answer is that your cellphone’s GPS is telling foursquare the wrong position. But there’s a lot more to it than just that. To understand why it might be an issue, we’ll look over how your phone’s GPS works.
First, the foursquare app asks your phone for its location. Your phone says “Ok, sure. Hang on a second.” and then it activates the internal GPS receiver in your phone. Now, GPS requires what’s known as “line of sight” to work. This means that your phone needs to “see” the satellite in space. Think of it like your TV’s remote: if you go in another room or someone walks in front of you, the remote won’t work because the remote doesn’t have line of sight to the TV. If you are inside of a building or standing around a bunch of tall buildings, your phone likely is being “blocked” from the satellite and can’t get an accurate position (or sometimes, not one at all). In this case, your phone realizes that the GPS has failed, so it then attempts to perform what’s known as “Assisted GPS” (aGPS).
aGPS gives you a “fuzzy” position. Your phone will attempt to triangulate its position based on nearby cell towers. By knowing what cell towers are where, it can give you a rough idea of where you are. If that fails, most phones will then use nearby WiFi access points in a similar fashion to triangulate your position. On a webOS phone, aGPS usually returns your position somewhere in the radius of 150 meters, but this will differ on other phone models and brands.
So, after your phone grabs either GPS or aGPS coordinates, it says “Hey, foursquare, here’s your position!” and the app sends that information off to foursquare’s servers which find your venues and sends them back to your phone.
So, now that you have the Sesame Street version of how GPS works, we can talk about why foursquare thinks you’re too far away.
As I mentioned, your phone needs line of sight to work. If you are indoors, that line of sight does not exist. GPS needs at a minimum three satellites to determine your position. Three will give you a position, but not a very accurate one (usually within 1000 meters). Most phones will be able to handle up to 12 satellites at a time, which will give you excellent accuracy down to about 10 meters. When you are indoors, you are limiting the number of satellites and so the accuracy will be off. In addition, cloudy or rainy skies can also distort the line of sight to the satellites which will cause inaccurate or no positions.
So, okay, you were in the building and it said you were too far away and then you go outside and it says the same thing. This usually happens because your phone is caching (read: remembering) the last locations of the satellites it last found. Your phone does this because GPS uses a lot of battery power and can take a long time. By caching the locations of satellites, it not only speeds up the location process, it saves on battery power. Your phone usually only returns cached results when GPS lookups are performed near each other in time. Now, I don’t know specifically how the other foursquare apps work, but the webOS app requests fresh GPS data every time and will not use cached data. However, sometimes when the OS (webOS, iPhone, Android, BlackBerry, etc.) has problems with GPS signal, it’ll erroneously throw back old GPS data, or use old positions of satellites, giving you inaccurate positions. Usually restarting the phone will force it to use new data.
The longer amount of time your phone spends finding satellites, the better chance it will have at finding more satellites to give you better accuracy. But, as I mentioned, GPS uses a lot of battery power and can take a while. The developers of all of the foursquare apps have to do their best to balance speed vs accuracy. The slower the app is, the better the GPS accuracy, and vice versa. The problem is, extremely accurate GPS locks can take up to 30 seconds! Who’d want to wait 30 seconds at the foursquare loading screen?
Another factor in inaccurate check-ins is the location of the venue in foursquare’s database. When you check out a venue either in one of the mobile apps or on foursquare’s website, you see a small Google Map that shows the pushpin location of the venue. Foursquare uses that location to determine whether it should show up in your list of nearby places and if you are actually near it when you check-in. The problem is, when a user uses their cell phone app to add the new venue, foursquare stores the venue’s coordinates as whatever your phone says its coordinates are. That means if your phone has you 800 meters away from where you actually are, that new venue will have the right address, but its coordinates will be 800 meters off. This means the next time you visit that venue and maybe your phone has a GPS lock and says you are only 40 meters from the venue, it won’t know you are near it because it is stored as being another 760 meters away! How can we fix this? One way is to just use the foursquare website to add new venues (boring!) or, go ahead and add the new venue like you normally do. If you are a Super User, when you get home, search for your new venue on the foursquare website and you can move the push pin on the map to a more accurate position. If you aren’t a Super User, you can either ask the guys at foursquare to make you one, or visit the foursquare GetSatisfaction page and report the error. Or, if that doesn’t work, you can always ask me on Twitter (@zhephree) and I’ll try to make the adjustment when I have time.
So, the bottom line is: it’s not really foursquare’s fault that your phone says you’re too far away. Either your phone has a crappy GPS receiver chip, doesn’t support aGPS, or someone added the venue when they were at their house. Either way, it’s up to the foursquare community to make foursquare better. Find a Super User in your area and ask them to make edits. Make sure you enter in addresses when adding new venues. Only add a new venue when you’re actually by the venue and not when you’re at home or another venue.
Until GPS technology improves, it’s up to us to use our heads and have some patience.
EDIT: It’s important to note, however, that forusquare accepts your phone’s accuracy radius when you ask for venues. I know at least the iPhone and webOS apps do this. Basically, if your phone says you’re at (x,y) with an accuracy of +/- 500 meters, the foursquare app tells the foursquare servers “Hey, they’re at (x,y), but there’s a horizontal accuracy of 500 meters. Just a heads-up.” The foursquare servers then take that into account when calculating your check-in and what nearby venues to show you.
-
torrent-sites reblogged this from zhephree
-
free-registry-cleaner reblogged this from zhephree
-
foreclosure-listings reblogged this from zhephree
-
hellotumlr liked this
-
unwiredben liked this
-
cloudworld reblogged this from zhephree
-
zhephree posted this