There are different techniques that we can use to determine the
geographical location of a device, based on the platform, the browser, the
operator, and so on. Most technologies involve server detection, but
others depend on client detection, and we may even rely on the user’s
input.1. Accuracy
Every location technology has some accuracy error. This is usually
specified in a distance metric, like meters or kilometers, but in some
techniques accuracy is defined according to levels such as city accuracy or country accuracy.
2. Indoor Location
When we think about geolocation, we tend to think about
the outside location—that is, where on the planet the user is located.
Recently, there has been some interest in services that will locate a
user inside a building (for example, a shopping mall or an office
building). The idea is that we can offer better services for the users
inside the building if we can pinpoint what floor they are on or what
department they are in. These services may be local services on the
Internet, or even services provided on an intranet with the user using a
Wireless LAN connection.
Augmented Reality (AR) is a very popular technology
today. It involves the usage of the camera preview with additional
information on the screen about the objects and places we are seeing.
One of the AR solutions is geographical-based, allowing us to see, for
example, the camera preview and a tag over every building and
Point of Interest (POI), with more information displayed
about those places. This solution involves accelerometer, high-accuracy geolocation
(e.g., GPS), digital compass, and camera support. Unfortunately, a web
application cannot access all of these features from the mobile
device, so we cannot create AR web applications right now. Such
applications must be created as native apps, like an Objective-C
application for iPhone or a Java application for Android. |
3. Client Techniques
Devices support a wide variety of approaches to figuring
out where they are. Different approaches may yield different
results.
3.1. GPS
The Global Positioning System (GPS) is the first
technique most people think of when location detection is mentioned.
GPS was created by the United States government as a system for
locating devices, using between 24 and 32 satellites orbiting the
Earth. Many mobile devices come with a built-in GPS receiver that can
read satellite data to determine location information (data must be
received from a minimum of four satellites). In mobile devices, the
accuracy error is between 2m and 100m. The user needs to have a sky
view (outside), and it can take between 5 seconds and 5 minutes to
calculate the location.
3.2. A-GPS
Assisted GPS is a software-based system available for
mobile phones connected to carrier networks that can help the devices
to determine their locations. The assistance can be in the form of
helping the device to find a better satellite signal, or providing
less-accurate information about the location of the user until the GPS
has connected successfully.
In 2006, I started to use a Nokia N95 with GPS support. In my
city, it took 5 minutes to get my location using GPS (with an accuracy
error of 10 meters). A firmware update later added A-GPS support to
the same hardware, allowing the same device in the same city to
connect in 10 seconds, with an initial accuracy error of 100
meters.
3.3. Cell information
Using the operator network’s cellular towers, the
carrier can triangulate the position of a mobile device. The accuracy
will depend on how many cells are in range (the more densely populated
your location is, the more towers will be in range and the more
accurate the reading will be). The carrier knows every cell tower’s
position, so it can make the calculations to detect the device’s
location.
Even knowing which cell tower a device is connected to can
provide an idea of its location (near the location of the tower). This
might be accurate to within a block, or up to some kilometers in rural
areas.
It is possible to detect a mobile device’s position using cell
information without the cooperation of the carrier. OpenCellID (http://www.opencellid.org) is an open source project
aiming to create a complete database of cell IDs worldwide. If we
can get the IDs of every cell in range and calculate the distances
to those cells, we can triangulate the device’s position. For example, Google Maps can locate even non-GPS-equipped
devices anywhere in the world, and with some carrier agreements for
cell detection. |
3.4. WiFi Positioning System
If you have a notebook with WiFi and Google Chrome 2.0
or Firefox 3.5 or newer, go to http://maps.google.com and click on the blue circle. If
you are in a large city, you will probably be located very accurately.
You were just geolocated, and unless you have a 3G netbook chances are
your notebook doesn’t have GPS. This technique also works on a
WiFi-connected iPod Touch. But how?
The WiFi Positioning System (WPS) is a very clever technique
that detects your location using the list of wireless routers that are
available in your area (even if you are not connected to them). This
method relies on a pre-existing database of routers and their
geographical locations. Skyhook Wireless (http://skyhookwireless.com) is the leading provider,
offering developer programs for most mobile and desktop platforms.
Google has its own database and is the provider used by
Firefox.
The main problem for us is that as yet there are no mobile
browsers that give us the hotspot list.
4. Server Techniques
On the server, we can get the HTTP request headers. This is our opportunity to locate
the user without using any client technology such as GPS, and in a way
that works even for low-end devices.
4.1. IP address
The main server technique for locating a user is reading
the client’s IP address. However, this is not as straightforward as it
may sound. Depending on the user’s connection type (2G, 3G, WiFi), the
IP address we receive may be the operator’s WAP gateway address, a
dynamic IP address in the operator’s range, or the IP address of the
WiFi connection.
To further complicate our work, we need to bear in mind
proxied browsers . These browsers use a proxy server to
connect to the Internet and to our servers. For example, if the user
is browsing using Opera Mini, we will receive the requests from the
Opera server instead of from the user’s device. Likewise, if the user
has a BlackBerry device and is using a corporate Internet connection,
we will receive the requests from that connection, which could be
based thousands of miles from the actual user’s location.
What should we do with the IP address? There are public lists of
operators’ IP addresses, and there are public and commercial solutions
for determining the location of an IP address. The accuracy of this
method can be country-level to city-level, although in some special
situations, like when the user is using a public WiFi network, we can
pinpoint the exact location.
4.2. Carrier connection
Some worldwide operators offer developer programs (both open and
private) for web portals that allow any request made from a user to
your web server to carry additional headers containing information
about the user (e.g., identity, location, and billing services). The
GSM Association, which encompasses almost all the operators around the
world, has launched an initiative called OneAPI that aims to provide web
applications with access to all this carrier information through its
APIs.
4.3. Language
A less-accurate mechanism is to use the accepted
language of the browser. If the user has set up his device correctly,
it should send a header indicating the preferred language, from which
we can infer the country of the user (for example, the browser may
send us en-CA as the accepted
language, meaning English from Canada). This results in at best
country-level accuracy.
4.4. Indoor location
When users are connecting via WiFi hotspots in a single
building, we can configure our routers to be queried about those
users. Every WLAN user has a unique IP address in the network, so we
can tell which hotspot a given user is connected to. With that
information, we can identify the floor and zone where the user is
located.
Nokia set up the first indoor location implementation
trial in the Kamppi shopping center in Finland, shown in Figure 1. Anyone inside
the shopping center can access indoor maps, information, vouchers, and
even their friends’ locations by going to a website using any mobile
browser from an S60 device.