Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Short version:

I live in Iowa. My WiFi only Android tablet's AccuWeather.com weather app, and Google Maps, and Chrome on my laptop tell me I'm located Oklahoma City. Why?

Commentary:

From what I understand, on WiFI only, Google's location services use the coarse location of your IP address to estimate your location. It's always worked like this in the past and when you look on Google Maps, you will usually see your location as where your ISP's server farm is.

This summer, I was living and working in Oklahoma City where I purchased an old Linksys WRT56G for $3 from a thrift store. I promptly installed DD-WRT on it, etc. I set it up where I was living and used it for a few weeks. I did not have my tablet at this time however I had my laptop.

Now, a lot of things happened within a very short time span, but the following order:

  1. I returned home and have been using my laptop and Chrome linked with my Google account.
  2. I obtained a new Android phone, installed 3rd party software, and linked it with my Google account.
  3. I bought and setup my tablet and linked it with my Google account.
  4. My home router died and I replaced it with the router I bought in Oklahoma City.

I'm not entirely sure but at one point I think my laptop gave me search results for Oklahoma City. Google Maps on my laptop currently tells me I'm in Iowa, but nothing finer than that. My tablet thinks I'm in Oklahoma City and has since I set it up. My phone has always given me the correct [fine] location.

Given the facts, I see two possibilities:

  1. Google stores a last known fine location with your account which was picked up by my tablet when I linked it with my Google account. The tablet has yet to sync any newer fine grained locations. Because a fine location would take precedence over a coarse location (which is all that WiFi can give you), the tablet is using old fine grained location data (coarse and fine are things to the Android system's location services). It seems unlikely the tablet would not sync a new fine location after about a week, I would think my new phone would update that information and indeed it displays the last sync date as today (later than my initial tablet setup). My tablet also displays the last sync time as today. The only remaining explanation would be my phone's aftermarket firmware's location sync feature (were that to exist) is not yet working. This would be plausible as I'm using an unofficial nightly build of CM10. However, this seems unlikely.

  2. Google has a robot silently pinging every public IP address it can and recording/associating the MAC address present with the IP address. The location services then first try to locate you by, provided finer information is unavailable, MAC address and then IP, etc. This is not an easy task and the association map would probably be updated bi-weekly at best. This is plausible as some sort of massive IP address <--> MAC address mapping is right up the alley of weird-but-semi-useful things Google could come up with, and they definitely have the resources to do so. Further, it aligns with the fact that the only thing that seems to be constant between before and after I setup my tablet is the Linksys router originating in Oklahoma. However, I believe my tablet thought it was in Oklahoma from the start, before I installed the Oklahoma native router. I also find this option unlikely.

So, I'm at a loss. Both possibilities seem plausible but unlikely at best. Does anyone have knowledge of how Google's locations services work or an explanation as to why my tablet is experiencing this odd phenomenon?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

Both Google and Apple uses Wifi location service from Skyhook which uses a special router to get your Wifi router ID when they're nearby which will be matched with a satellite location. That location data will be stored for a few months before they go out and recollect and reanalyze the location data of every wireless router they are able to reach with their amplified wireless antennas.

From Skyhook's FAQ:

What is a "location-determination technology"?

A location-determination technology is a system that uses the known position of reference points and satellite signals to determine the location of mobile devices. As reference points, Skyhook uses Wi-Fi routers and Cellular base-stations (Cell ID), each of which broadcasts a signal that includes a unique identifier. When a device is in range of any of these reference points, Skyhook's system matches the signal data and unique identifiers to those in its database and also incorporates GPS satellite signals to determine the user's location.

More on this here: http://www.skyhookwireless.com/whoweare/faq.php

share|improve this answer
    
Just a sidenote, I think they use your router Wifi MAC address to uniquely identify your router. I could be wrong though. –  superuser Aug 19 '12 at 5:44
    
You are right. And it is confirmed later down in the FAQ you linked. Skyhook uses your MAC address to uniquely identify your router or, in general, device (since MAC addresses are exactly for that purpose). It also explains that Skyhook does exactly what Google did with their Streetview vehicles: roams the world with signal receiving vehicles and links open WiFi networks and cell towers with satellite geolocation data. Pretty interesting if you ask me. Good find! –  David Cowden Aug 19 '12 at 5:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.