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

Retriving co-ordinates...

         We have seen 2 Google Maps API v3 examples wherein we have retrieved the latitude-longitude co-ordinates of the point of click on the map. In the first example we have displayed the co-ordinates in the information window and in the second , we have displayed the co-ordinates in a form in the information window.         Today we will create a code to retrieve the latitude longitude co-ordinates in a text box while simultaneously a marker appears on the map as well. So, here goes the code. <html> <head> <title> Google Maps API v3 - Adding marker on Click and retrieving the co-ordinates in a text box </title> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> var map;    //When using event as a parameter to a function declare map, strictly as a global variable fun...

Google Street View Image API

    Street View is one of most used feature of the Google Maps and why not? You can actually see any part of the world as if you are visiting the place at that very moment. And now with the Google Street View Image API, you don't even need to carry a camera with you to the places you visit. You can take-in all the scenic beauty without even bothering about clicking a single picture. You can come back from your vacation and get a few images using the Google Street View Image API and show those images to your friends and relatives. Create an album of high definition images and go ahead and share it on Facebook for your friends to have a look.     Using the Google Street View Image API is very simple and anybody can make use of it without any programming knowledge required. I will walk you through the entire process of effectively using the Google Street View Image API. So if you are set, let's go on an amazing ride across the globe with the Google Street Views. ...

Google Map's Real-Time Traffic Layer...

    You can now check the traffic condition on the road before you leave for work, or a party or to your friend's place. Google's Traffic layer shows the traffic conditions in your area - LIVE!!! Live traffic data is available in major cities in the United States, France, Britain, Canada and Australia, with new cities and countries frequently added. The Google Maps API allows you to add real-time traffic information (where supported) to your maps using the TrafficLayer object. Traffic information is provided for the time at which the request is made. Consult this spreadsheet to determine traffic coverage support.     Let us now have a look at the Google Maps API - Trafiic Layer example. Copy the following code in a simple text file and save it as html. Click on this html file and it will open in your default browser. You will then see the traffic conditions in your area - LIVE...     The output of the above code looks as seen in the r...

Map Loading...

    The blank web page seems so boring and dull when the map is still loading. You will come across such a situation quite often where you will be having a slow internet connection! We cannot do anything about the slow internet connection, but we can surely avoid the dull blank web-page by using a simple trick. We can place a "loading" image at the center of the web page so that the page doesn't look blank! An image like this:             The following code will show you how this can be done and here it is!     As you all can see the code is very very simple and the output will look as seen in the results section above. The image below shows the loading stage of the map.       Do let me know what you think about the examples shared here! Do leave your comments here! Till the next example, happy mapping!

Jquery Mobile - Basic Listview

    Continuing with the Jquery Mobile Examples, today we will take a look at the listviews in Jquery Mobile. Listviews are popularly used in websites and web-applications that are built on the Jquery Mobile platform and hence we will look at the various list patterns available with Jquery Mobile. Lists are used for a various purposes like data display, navigation, result lists and data entry. We will start with the most basic listview example and look through several examples over a number of posts.     A listview is simply an unordered list containing linked list items with a data-role="listview" attribute. jQuery Mobile will apply all the necessary styles to transform the list into a mobile-friendly listview with right arrow indicator that fills the full width of the browser window. When you tap on the list item, the framework will trigger a click on the first link inside the list item, issue an Ajax request for the URL in the link, create the new pag...