Let's imagine that you're motoring along in your brand new Prius with GPS navigation. You decide to visit FoxTrax at 118 E. Lockwood Ave, St. Louis, MO. Because you're such a safety conscious individual, you bring your trusty eco-steed to a halt and type in the address. Before you know it the navigation system is giving you turn by turn directions. Life is wonderful. But how did this all happen?
First, the navigation system had to figure out where you wanted to go. Not where in terms of an address, but where in terms of a physical location on the globe. Geographic locations are stored as pairs of numbers called latitude and longitude. So the navigation system opened up its database and looked up a street segment with a matching name, zip code, and address. Computers are great at this kind of thing, so the whole process happened in the blink of an eye. And what's even better is that this street segment came with a latitude and longitude pair attached to both ends.
If you would like to see a working demonstration of this, try searching http://maps.google.com for this latitude longitude pair: 38.59237 -90.35392. You should see the following result: 100-198 E Lockwood Ave, Webster Groves, MO 63119. Notice that you did not get the exact address of those coordinates, which happens to be my desk at 118 E Lockwood Ave. Instead Google gave you a street with a range of possible numbers. More on this later.
The process of discovering the latitude and longitude for a known street address is called geocoding.
After finding the correct street segment, the navigation system calculated the quickest route from your current latitude and longitude using all sorts of higher math. Since this has almost nothing to do with geocoding or reverse geocoding, I'll skip this part entirely.
After finding the correct street segment, the navigation system calculated the quickest route from your current latitude and longitude using all sorts of higher math. Since this has almost nothing to do with geocoding or reverse geocoding, I'll skip this part entirely.
Finally, the navigation system gave you turn-by-turn directions to your destination. Like magic, just as you approached 118 E Lockwood, the navigation system said, "Arriving at destination, on right."
Hmm. There's something funny going on here. How did the navigation system know the exact location of 118 E Lockwood if all it had was the 100-198 segment of E Lockwood? Here's a secret: It guessed.
What the navigation system did know was where 100 E Lockwood is. And it knew where 198 E Lockwood is. So to get an approximation for 118 the system guessed that 118 is about 18.4% of the way down the street (18 / 98) from 100 E Lockwood. And 99% of the time that is close enough. The human brain can work out the last little bit of the journey.
The big takeaway is that nobody has the exact coordinates for 118 E Lockwood sitting in a database. They are all just guessing. Here comes another secret: Even if they did know the exact coordinates of 118 E Lockwood, the information wouldn't be all that useful. For one thing, 118 E Lockwood happens to be the second floor of 116. How would you ever know the difference based on a set of coordinates?
What about reverse geocoding? The astute reader may already have inferred that if geocoding is the process of discovering the coordinates for a given address, reverse geocoding must be the process of discovering an address for a set of coordinates.
Interestingly, reverse geocoding is considerably more difficult than geocoding. When converting from an address to known coordinates, all you have to do is pull the right street segment out of the database and interpolate for the exact address. But when converting 38.59237N - 90.35392W to an address you have to search a database for all street segments within a specified radius from that point. This is a computationally intensive task in itself. You will probably get several possible street segments back from the database. And when you get those street segments back, you have to decide which one is the best match. Sometimes this is easy, sometimes not.
Let's assume we're a GPS tracking system and we have received 38.5925 -90.3549 as the location of a parked car. Search for those coordinates on http://maps.google.com. Now, tell me what address the car is visiting. Is it on the north side of the street or the south? Is it on Maple Ave or E Lockwood? Is the driver upstairs or downstairs? How do we know that the car didn't park down the street from the actual destination? Have you factored in a few meters of GPS inaccuracy?
The point is that it's simply impossible to convert a set of coordinates into an exact street address in many cases. It's not that we don't know where the tracking unit is, we do. The dot is on the map in the correct location. We just can't give you the correct postal address often enough to make it worth your while. An in-car navigation system has a key advantage: it knows where you are trying to go. An active GPS tracking system does not know where the driver is trying to go, so it must guess the correct street segment and show you a range of possible matches.
FoxTrax GPS Fleet Tracking
Clever solutions for vehicle tracking
www.FoxTraxGPS.com
FoxTrax GPS Fleet Tracking
Clever solutions for vehicle tracking
www.FoxTraxGPS.com
0 comments:
Post a Comment