I was wondering how Google Maps on my Android phone can locate me with a good accuracy when my GPS is disabled.

At first I though it was with the cell tower but I'm not sure it can achieve this precision and it is way better when the wireless is enabled (the accuracy go from 1600m to 100).

What I don't understand is that I have a dynamic IP - it's not supposed to be linked to my address. For example wolframalpha locates me with a very bad precision (the country is correct) and it's the same for all other IP location services.

How does this work?


3 Answers 3


Google and others like Apple and Skyhook build a Database which links WLAN BSSIDs to a geographic location. A BSSID is like the MAC Address of a access point that gets broadcast by that access point. It is therefore "publicly viewable" if the BSSID broadcast is enabled, which is the default for most access points. The BSSID operates on a lower layer than the IP stack; you don't even have to be connected to an access point to receive these broadcasts.

Every time you run Google Maps or Navigation with GPS and WiFi enabled and if your device is able to get a good GPS fix, the currently visible WLAN networks and your current location (the GPS fix) are uploaded to Google to build and update the database. This technique is sometimes called crowdsourcing. Every Android device acts therefore as data collector.

Since most access points are static in their position and only cover a small area - the coverage radius is approximately 100m - they are ideal anchors for a good location fix without GPS.

  • Thanks but how can they match a BSSID and a location at first ? I've a new wireless hotspot in my house for only about a month and it's already inside the database... Oct 31, 2011 at 8:50
  • note that Google StreetView cars also carries a GPS and Wifi for the same purpose.
    – Lie Ryan
    Oct 31, 2011 at 15:25
  • It can also use cell towers. Turn off gps and WiFi, you'll still get location data.
    – devnul3
    Nov 1, 2011 at 5:36
  • Ok thanks, nice trick, just a bit terrifying for the privacy... Concerning the cell towers there is something I don't get. If I don't have wireless and just know the cell id, how can it find the corresponding position of the tower. I guess there is a cache of last seen but so for new ones, no way to know ? Nov 1, 2011 at 19:22
  • You can do it that way, although its less accurate. Typically there's triangulation using timing to and from the tower(s), then you ask the network where you are.
    – devnul3
    Nov 2, 2011 at 1:50

I think they use mainly cell towers in that case. They locate three towers (which provide your cellphone's calling/receiving connection) that are close to you, and then use the respective distances from the towers to you to calculate your exact location. That was how location of cellphones were done before the wide spread of GPS and WiFi technology.

  • In my experience, cell tower triangulation is not used for Google's LBS. It's done the same way as with the WLAN geo-location data, just instead of the BSSID they use the cell tower's GSM ID and map it to the location of the tower and it's estimated coverage. Which is sometimes very inaccurate. For example in urban areas where the area is to big and in rural areas the towers have a bigger coverage as what, for example Google Maps, tells you.
    – Flow
    Nov 1, 2011 at 21:37
  • Thanks but I'm not sure you can achieve a 50m accurate location with cell tower triangulation Nov 1, 2011 at 22:41
  • Under certain circumstances it is possible to achieve this accuracy. But triangulation can not be done by the GSM device itself. Only the carrier can do that and provide this information to the device. But given the fact that most smartphones don't need LBS from the carrier to provide a decent location information, most carriers turned off their LBS interface. At least that's the situation in Germany.
    – Flow
    Nov 2, 2011 at 7:39

I don't have a plan for a phone number and the cell tower is farther then 100m. It maybe determines your location by the location of the router. Its radius is 5m - 1km.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .