Stephen P. Morse , San Francisco
1. Why do you show the latitude and longitude several times?
I fetch the values from several different websites for comparison
(see question 4).
2. Why do the different sets of values sometimes differ significantly?
That's because of the way the different websites behave when they
recognize the address. Some try to find the closest match for the
street that you specified. Others give the coordinates of a
point in the specified city, or perhaps a central point in the
zipcode. The address given below each website's results shows the
actual address that the website decided to use.
3. Why is there sometimes no results from specific websites?
Sometimes one or more of the websites happen to be down at the time
the request is made. In that case, resubmitting the same request
might get a result from a website that didn't show a result
And some websites, when they don't recognize an address and are unable
to uniquely determine a close match, don't return any results.
some websites are for US addresses only.
4. Which website gives the most reliable coordinate values?
Here are some of the pros and cons of each site:
If travelgis does not recognize an address, it will use some central location and not tell you it is doing so[Second thoughts: Above was written when the only sites I queried were travelgis, maporama, and terraserver. I have since added many more sites to the list, and I no longer query travelgis. I have not attempted to do a comparative analysis of all the new sites. I was at one time querying gpsvisualizer until I realized that they were getting their data from maporama. Same is true for google when I realized that they were getting their data from the same underlying service as yahoo.]
This is a strong disadvantage for travelgis
maporama will sometimes give you a totally bogus result in its attempt to recognize the address you gave it (see question 4).
That's a strong disadvantage of maporama.
maporama returns the least precise result (less digits after the decimal point)
This is a slight disadvantage for maporama
terraserver and geocoder are for US address only.
[Third thoughts: Google and yahoo are no longer getting their data
the same underlying server. Either it was true at one time and not any
longer. Or it was never true and I had a faulty test and thought I was
getting identical results.]
5. How many feet does one second of latitude or longitude represent?
The earth is approximately 24,000 miles in circumference, which means it is 12,000 miles from the North Pole to the South Pole. And the difference in latitude from the North Pole (+90 degrees) to the South Pole (-90 degrees) is 180 degrees. So 1 degree of latitude is 12,000/180 miles which is 67 miles. Let's round that to 60 miles to make the next computation simpler. There are 60 minutes to a degree, so 1 minute of latitude is 1 mile. There are 60 seconds to a minute, so 1 second of latitude is 1/60 mile or 5280/60 feet. That comes to about 90 feet.
The distance corresponding to a second of longitude will depend on where you are. If you are at the equator, a circle of longitude is still the same 24,000 miles, so 1 second is again about 90 feet. If you are at one of the poles, the circle of longitude reduces to a point, so 1 second is 0 feet.
OK, we did some approximating in the preceding paragraphs. To
get a more exact value, we should have used 24,860 miles as the earth's
circumference (measured through the poles)
and not done any rounding. That would have given us 101 instead
90 feet to a second of latitude, and 6076 feet to a minute of
latitude. The circumference measured at the equator is 24,901
miles, so a minute of longitude at the equator is slightly larger than
a minute of latitude -- specifically it is 6086 feet.
(Note that a nautical mile is defined as the distance covered by one
minute of latitude. With the approximate computations done in the
first paragraph above, we see that one nautical mile is close to one
But under the more exact computations, we see that one nautical mile is
6076 feet instead of 5280 feet.)
6. What format should the address be in for the batch converter?
Pretty much anything that makes sense. All of the following formats will be acceptable:
street address, city, state or province, zipcode
street address, city, state or province
city, state or province, zipcode
city, state or province
7. What does the precision indicate in the batch-mode results?
If the converter was able to find your specific address, the coordinates returned will be for that address. Otherwise if the zipcode was specified, it will return the coordinates of some central point in the zipcode. Failing that, it will return the coordinates of some central point in the specified city or state. The "precision" indicates whether the coordinates correspond to the "address", the "zipcode", the "city", or the "state". If the location is completely unrecognizable, the converter will respond with "unable to parse location".
[Second thoughts: yahoo no longer returns the precision so I am no
able to display it.]
8. Why don't you have a reverse batch geocoder?
[Ignore this question -- I now have a reverse batch geocoder. Original answer is being left here, just for reference.]
First, let me define some terms so everyone knows what we are talking about. Forward geocoding is obtaining the latitude and longitude of an address. Reverse geocoding is just the opposite -- obtaining the address corresponding to a specified latitude and longitude. Interactive mode is doing geocoding or reverse geocoding one item at a time, and batch mode is doing it for a list of items.
My main latitude/longitude page does both forward and reverse geocoding for a single address or a single latitude/longitude pair. So it is operating in interactive mode. There is a batch-mode button on the top of the page, and that brings up a batch-mode forward geocoder.
Now let me explain why I don't have a batch reverse geocoder. The answer is a bit technical, so bear with me.
My website does not have the geocoding information but rather makes requests to several underlying websites, such as google. The requests go out from my server to google's server, and google sees my server's IP address on each request. That is not too bad because my interactive users can do only one request at a time. Furthermore, if any one user makes too many requests to my website, my code will detect that and block him. These two factors together keep the total number of requests from my site to google limited to a reasonable amount.
Now batch mode is a different story. People who are doing batch requests usually want it because they have thousands of requests to make. If they go through a batch-mode tool on my site, all those thousand requests would go to google with my server's IP address. If several people are doing this (which occurs frequently), the number of requests from my server will become excessive, and they might block my server's IP address. Then everyone using my website would lose.
How then am I able to offer a forward geocoder in batch mode? That's because one of the forward-geocoding websites allows for requests to be made directly from the user's browser and doesn't need any intervention from code on my server. So I can have the request sent directly from the user's browser and it gets seen by the website as coming from the user's IP address. If any one user makes an excessive number of requests, it is his IP address that gets blocked and not my server's IP address.
Now reverse geocoding is a different story. There is no way you can interact with any of the reverse-geocoding sites in such a way that the request can be handled entirely from the user's browser. That means I have to have code on my server that makes the actual request and, as explained above, that could lead to the underlying website blocking my server's IP address.
[Second thoughts: google now allows for reverse geocoding in such a
way that the reqauest can be handled entirely from the user's
Consequently, I am now able to offer batch reverse geocoding.]
9. Is there a limit to the number of entries in the batch geocoders?
In theory the answer is no. However in practice, the more
you have the longer it will take to see the results, and your browser
time out. So I suggest you experiment. Start with a small
and see how long it takes. Keep increasing that number until you
get to a value that returns results in the maximum time you are willing
-- Steve Morse