Several of you must have observed this like I did, that the Google geocoder returns different results on the Google Maps website and Google Maps API v3 for the same address string. To understand why this difference exists, I dug deeper into the web and came up with the following.
The first and foremost place to look for an answer was the Google Maps API FAQ section. The FAQ section did not let me down of course! The FAQ section says:
Though this is a pretty good conclusion, but then I could see people who have posted several instances on different forums of the same address getting geocoded differently...So I started verifying. One address and an explanation appealed to me and I am sharing it here!
The address to be geocoded was "brussels (municipality)". Now this address geocodes to "City of Brussels Belgium" through the Google Maps website, whereas using the API returns "Brussels City somewhere in the Philippines". Now, consider the address "brussels (This is a nice place)". This string returns the same address in both - the Google Maps website and Google Maps API v3. Assuming that Google geocoder does not consider the contents in the brackets, then how come "brussels (municipality)" is geocoded differently?
Well I couldn't answer this one and so decided to throw this question to all you guys and gals reading this. Could you give a possible explanation?
The first and foremost place to look for an answer was the Google Maps API FAQ section. The FAQ section did not let me down of course! The FAQ section says:
The API geocoder and Google Maps geocoder sometimes use different data sets (depending on the country). The API geocoder occasionally gets updated with new data, so you can expect to see results changing or improving over time.What I concluded from the above is that, in a lot of cases Google licenses data from other companies like DigitalGlobe, Infoterra Ltd & Bluesky, GeoEye, Getmapping plc, Tele Atlas, etc. When negotiating a licensing agreement for copyrighted map data the two companies have to come to a mutually satisfactory agreement. In some cases, a company might be willing to license data for use in regular Google Maps but not through the Google API. For example, in the UK you have to buy a license to access the post code (Zip code) to longitude/latitude database. Google has precise info for regular Google Maps, but if you do the same query through the API you get a much less precise longitude/latitude. Why? Well if you are the company with the post code to longitude/latitude database and you currently charge people for access, then Google starts giving away access for free, probably no-one's going to want to pay you for access to it any more. So you'd only agree to let Google give away your product for free if they gave you at least as much money as you make by charging for the product!
Though this is a pretty good conclusion, but then I could see people who have posted several instances on different forums of the same address getting geocoded differently...So I started verifying. One address and an explanation appealed to me and I am sharing it here!
The address to be geocoded was "brussels (municipality)". Now this address geocodes to "City of Brussels Belgium" through the Google Maps website, whereas using the API returns "Brussels City somewhere in the Philippines". Now, consider the address "brussels (This is a nice place)". This string returns the same address in both - the Google Maps website and Google Maps API v3. Assuming that Google geocoder does not consider the contents in the brackets, then how come "brussels (municipality)" is geocoded differently?
Well I couldn't answer this one and so decided to throw this question to all you guys and gals reading this. Could you give a possible explanation?
Why do you track the location of your visitors without asking them for permission?
ReplyDelete@Pil
ReplyDeleteYou might want to consider unplugging your network cable.
Hello Blog Readers. I am posting in this comment the response that I received from a member - Rossoko; in the Google Maps API v3 forum.
ReplyDelete"The API geocoder is a postal address geocoder. Things like "brussels (this is a nice place)" are not well-formed postal addresses, and the geocoder struggles with them. You do have to look at all the results returned, not just the first one. They may not be in the order you expect.
The geocoder at maps.google.com extends its search to business and
institution listings and so on. It's much more likely to come up with matches against things like resteraunts in Brussels, BE, to help it along. This is a convenience for the non-programmer user.
If you want API behaviour to include non-postal addresses you need to
incorporate other services yourself, the programmer has the option.
For example, if you want results for things like city or province
names, the postal address geocoder is not really the right tool. Look into Geonames or similar specialised services."