Skip to main content

Why this difference?

       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:
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?

Comments

  1. Why do you track the location of your visitors without asking them for permission?

    ReplyDelete
  2. @Pil
    You might want to consider unplugging your network cable.

    ReplyDelete
  3. 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.

    "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."

    ReplyDelete

Post a Comment

Please leave your comments here...

Recommended for You

Playing with the markers and info window bubbles...

    In the last few posts, we have seen some marker examples and some information window examples. Now, lets do something interesting combining these two things. Just writing that "This is an info window" in the information bubble is not very interesting! And I know this...Have gone through the same phase!     So, today we will do something interesting! We will display the latitude- longitude co-ordinates of the point that the user clicks on the map! Doing this is not at all complex! Copy paste the following code and you will see for yourself a map coming to life!     The output of the above code looks as seen in the result section above! If you have any queries regarding the above code please comment on the blog post or feel free to contact me at my mail ID .

Jquery Mobile Form - Radio buttons

    Radio buttons - popularly used in forms for single option selection, pose a problem in the mobile web world! The radio buttons being so small as they are, reduce the touch area and it becomes really difficult for selection. Jquery Mobile styles these radio buttons in such a way that they become touch friendly and gel with their overall framework design. Jquery Mobile styles the label for the radio buttons so that they are larger and clickable. A custom set of icons to represent the radio button is added to provide additional visual feedback.     The radio buttons can be used singularly or in a vertical group or can be even grouped horizontally. These radio buttons can be used along with data-mini="true" too, which renders the radio buttons in a smaller size. We will take a look at all this in the example that follows.     In the first implementation you will see, 3 singular radio buttons which are not attached to each other like in the secon...

CSS Text and Font

    In this post today, we will take a look at some of the most interesting CSS text and font properties listed below. text-transform white-space word-break word-spacing word-wrap font-variant Text-transform property:     Let's begin with the text-transform property. The filler text used in all the examples below has been taken from Andy Matthew's filler text generator which is a humorous replacement to the traditional boring lorem ipsum .     The text-transform property will turn your text to uppercase, lowercase and also will capitalize the first character of every word. So now you don't need any javascript to do your bidding. This transformation will be done irrespective of the special characters preceding and following the text characters. The following example will make things much more clear and editable of course =) White-space property:     The next property to explore is the white-space  proper...

Better Late, Than Never

Spatial Unlimited changes to The UI Dev After being hosted on blogger 😣 for the last 6 years 📆, this page has finally been moved to Github.io This means a few things for you, dear reader! You will be redirected to the new page shortly! ⏩ ⏩ ⏩ Once crapy HTML is now better looking Markdown ! 😍 😍 The entire blog is a Github repo ! 😍 😍 Spatial Unlimited is now The UI Dev 😍 😍

Form info window

         Today we will look at a Google Maps API v3 example to add a form in the information bubble! This is usually required when we wish to accept some data/information from the user! This data can be saved to a server in the form of an XML file or a database! The information can then be retrieved back at a later stage, when necessary!          In this example we will only look at form in the information bubble! The connectivity part with the server will be discussed in another post! So, today's code snippet is as seen below! <html> <head> <title> Google Maps API v3 - Adding marker and info window on Click and creating a form in the infowindow with the lat-lng information in it. </title> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> var map;    //When using ev...