Game Development Reference

In-Depth Information

What Time Is It?

The story of GPS really begins with a prize offered by the British government in 1717

for a simple way to determine your longitude. Awarded in 1773, the accepted solution

was to compare local noon to the official noon sighted at the Greenwich Observatory.

The difference between these two times would allow you to tell how far around the

world you were from the observatory. Fast-forward three centuries, and we have satel‐

lites orbiting the earth, broadcasting time-stamped messages. By calculating the differ‐

ence between the time the message was received and the time it was transmitted, we can

calculate our distance from the satellite. In both cases you need an accurate way to keep

or measure time. For sailors in the 1800s, the device was the newly invented chronom‐

eter. For us, it is the atomic clock.

Because the signals from a GPS satellite are moving at the speed of light, you need a very

accurate clock to keep track of how long it took to travel to you. For instance, if the clock

you are using to time when the signal arrives is 1 microsecond off, you will estimate a

distance over 900 miles in error. On the supply side of the signal, each satellite has an

atomic clock, and internal GPS time is accurate to about 14 nanoseconds. The problem

is that you also need a very accurate clock in the receiver, and it would be pretty hard

to fit an atomic clock into a phone economically. To get around this, the receiver must

figure out the correct current time based on the signals from the satellites.

Two-Dimensional Mathematical Treatment

This section will give you a good idea of how GPS systems determine their location.

This background will help you in many applications of geometry in games in general,

but most GPS devices do the heavy lifting and report through an API your current

latitude and longitude. Some APIs may include more information—for example, the

current iOS API, called Core Location, gives the current latitude and longitude, the

direction of travel, the distance traveled, and the distance in meters to a given coordinate.

It also gives an estimate for the error associated with its position fix in meters.

One way to get your position via the kind of information that GPS provides is a technique

called
trilateration
. We are going to give this problem a mathematical treatment in two

dimensions. You could extend this to three dimensions by using spheres instead of

circles.

To begin, we can list our unknowns: our
x
coordinate and
y
coordinate in space, and

the error in our receiver's clock (or
bias
),
b
. In a two-dimensional plane, trilateration

among three circles gives you an exact position; in three-dimensional space, four

spheres are required to determine all three special coordinates. Note that if we included

an assumption about being on the surface of some geometric shape, such as the earth,