Search code examples
loopsgoogle-maps-api-3google-geocoder

Google map geocoding stops, while executing recursively


i am using following function to load latlng of addresses From an array to array about 40, but it stops after 10 iterations.

 loadStoreLatLong(40);


   function loadStoreLatLong(i){     


    var paddress = store_locations[i]['address'] +','+store_locations[i]['postal_code'] + ', ' +store_locations[i]['district'] + ',' + store_locations[i]['country'];
    var  pgeocoder = new google.maps.Geocoder();

    pgeocoder.geocode( { 'address': paddress}, function(results, status) {  
        if (status == google.maps.GeocoderStatus.OK) {

        Storelatlong[i] = results[0].geometry.location;
        i--;

        if(i<0){

   clientLocation();

        }else{

   loadStoreLatLong(i);

    //var t = setTimeout("loadStoreLatLong("+(i)+")",1000);
    //jQuery('#map_canvas').text('Loading ... '+i);

        }
        }
    });
}

i am really stuck there, can any one help to figure it out, when i set time out 1000, this iterates fine 40 time, when i decrease the timeout, iterations also decreases and stop. thanks


Solution

  • The client geocoder is not intended for geocoding lots of points on page load. It is intended for geocoding user entered addresses.

    It is asynchronous and is subject to a quota and rate limit. The limits are set up such that you can geocode ~10 points quickly (depending on server load).

    You should check the status returned, if it indicates that you are over the limit, delay for a period of time and retry.

    See Andrew's answer to this question