Technical Details

The core of the technique used by this service is the HTML5 Geolocation API. The main method is in the Javascript below

    function doGeolocation() {      
        if (navigator.geolocation) {            
                {timeout:10000, enableHighAccuracy:true});      
        } else {            

This technique is so simple, almost anyone can do it.


Quoting from the specification:

The accuracy attribute denotes the accuracy level of the latitude and longitude coordinates. It is specified in meters and must be supported by all implementations. The value of the accuracy attribute must be a non-negative real number.
The accuracy ... values returned by an implementation should correspond to a 95% confidence level.

Each time the page is re-loaded the API will request a new, non cached "lock", or location. If the GPS is on, most systems will activate it to get the location.


There are ways to get a location other than a GPS. Google, for instance, has an enormous database of the unique identifiers of residential and commercial wireless access points. If a mobile phone or laptop is within range of one of the WAPs in the database, the Chrome implementation of the HTML5 Geolocation API appears to use this in determining the location. This works quite well for laptops that do not have GPS, and mobile phones with GPS turned off.