Last week we revealed that the latest version of the Chrome browser which Google released recently had dropped support for geolocation from “insecure origins”, aka HTTPS. We've reviewed the options available for us to continue providing geolocation support to our customers who aren't able to enable HTTPS in the short term and come up with a solution.
We had proposed that we hide the 'My Location' button that allowed store locator users to automatically geolocate themselves if they were using Chrome over an insecure connection (i.e. using HTTP instead of HTTPS). This solution would have prevented any possible confusion that the button wasn't working for some customers.
Instead, we have come up with a compromise approach. Instead of hiding the 'My Location' button, we've commissioned a new geolocation service which is based on the IP address of the site visitor. Now, this isn't as accurate as using regular geolocation because that can leverage the GPS receiver positioned inside mobile devices which is accurate to 10m when everything works correctly. Instead, IP based geolocation uses tables of IP addresses which are handed out to hosting companies to determine approximately where users are located. Here's how the data is gathered:
The primary source for IP address data is the regional Internet registries which allocate and distribute IP addresses amongst organizations located in their respective service regions:
- American Registry for Internet Numbers (ARIN)
- RIPE Network Coordination Centre (RIPE NCC)
- Asia-Pacific Network Information Centre (APNIC)
- Latin American and Caribbean Internet Address Registry (LACNIC)
- African Network Information Centre (AfriNIC)
Secondary sources include:
- Data mining or user-submitted geographic location data. For example, a weather web site might ask visitors for a city name to find their local forecast. Another example would be to pair a user's IP address with the address information in his/her account profile.
- Data contributed by internet service providers.
- Merging databases from different suppliers.
- Guesstimates from adjacent Class C range[2] and/or gleaned from network hops.
Accuracy is improved by:
- Data scrubbing to filter out or identify anomalies.
- Statistical analysis of user submitted data.
So, moving forward there will be two possible geolocation mechanisms: Firstly, if HTTPS is enabled or a browser other than Chrome is used, then native HTML5 Geolocation using GPS will be supported. Otherwise, IP based geolocation will be used.