Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does Chrome know my geolocation?

Chrome seems to be very accurate in detecting my location. How does it do it? Can you point me to the source code?

like image 717
gak Avatar asked Sep 03 '10 06:09

gak


People also ask

Why does Chrome think my location is somewhere else?

That's because Google will try to detect your location based on the IP address. Sometimes location databases have incorrect information and end up determining that you are in a different country.

How does Google know my location without GPS?

Every Android device acts therefore as data collector. You can read more about this here. 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.

How does a website know my location?

It uses an algorithm which analyzes your Hostname and IP address to determine your location. This information gathered often points to the location of your ISP. However, with more sophisticated systems it may also gather your city. Using the above methods geo-tracking can also be done when registering on a website.


2 Answers

Geolocation can be calculated based on:

  1. GPS (if available)
  2. Available wi-fi networks and signal strengths
  3. Available cell towers and signal strengths
  4. IP Address lookup

See the W3C Geolocaton API and Google Gears API (which Chrome's/W3C Geolocation API is based on).

Chromium's geolocation source code can be viewed online.

like image 123
Matt Austin Avatar answered Oct 14 '22 03:10

Matt Austin


Your location can be obtain using different services and hardware available on your device. The most common ones are: GPS, wifi information, cell towers. Alternatively there is also IP lookup, however this is not very accurate and does not involve anything special on your device.

In your case most likely information about your wifi network was used. There are huge databases which connect wifi networks to a location, created by cars with GPS & Wifi (e.g. Google Street View cars). The transmission from your computer to the server is done according to W3C Geolocation API Specs, which is part of HTML5.

Chrome Source for this? Here is a entry point to start off from. Or if you prefer the old fashioned file browser: http://src.chromium.org/svn/trunk/src/chrome/browser/geolocation/

Implementation files for localization via wifi:

  • wifi_data_provider_mac.cc
  • wifi_data_provider_linux.cc
  • wifi_data_provider_win.cc
like image 33
Thomas Avatar answered Oct 14 '22 03:10

Thomas