2012-11-29 4 views
1

다음 함수를 사용하여 주소의 latlng을로드하려고합니다. 배열에서 약 40 개까지 배열을 10 개 반복 한 후에 중지합니다. 내가 1000에서 시간을 설정할 때 내가 타임 아웃을 줄일 때 난 정말이 붙어Google지도 지오 코딩이 반복적으로 실행되는 동안 중지합니다.

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); 

     } 
     } 
    }); 
} 

, 하나 도움이 그것을 알아낼 수는이 반복 좋은 40 시간, 반복은 감소하고 중지합니다. 감사합니다

답변

0

클라이언트 지오 코더는 페이지로드시 많은 지오 코딩을하기위한 것이 아닙니다. 지오 코딩 사용자 입력 주소 용입니다.

비동기이며 할당량 및 속도 제한의 적용을받습니다. 서버로드에 따라 ~ 10 포인트를 빠르게 지오 코딩 할 수 있도록 제한이 설정됩니다.

반환 된 상태를 확인하고 한계를 초과했음을 나타내면 일정 시간 동안 지연 한 다음 다시 시도하십시오. this question

+0

다른 라이브러리 또는 서비스가 빨리 또는 다른 방법으로 제공 될 수 있습니까? –

+0

일반적인 제안 사항은 점을 오프라인으로 (페이지로드가 아닌) 지오 코딩하고 페이지로드시 지오 코더가 아닌 결과 좌표를 사용하는 것입니다. – geocodezip

+0

나는 페이지로드에 포인트를 가져야하고 배열의 모든 주소를로드 한 다음 루프를 통해 이러한 주소의 latlng을 찾아야합니다. 좌표에 대한 예를 들어 줄 수 있나요? 그러면 문제가되지 않습니까? –

0

Google지도 API Javascript의 지오 코더는 많은 점을위한 모음이 아닙니다. 그들은 짧은 시간에 지속적인 액세스를 거부합니다.

40 점이 있어도 REST 버전을 사용하십시오. https://developers.google.com/maps/documentation/geocoding/

+0

참조 앤드류의 대답은 조금 안내하시기 바랍니다 수 있습니다, 내가 이해 해달라고 "REST 버전을 사용". 몇 가지 간단한 예. –

+0

몇 포인트가 있습니까? 작은 점이 있으면 수동으로 지오 코딩 할 수 있습니다. http://gmaps-samples.googlecode.com/svn/trunk/geocoder/singlegeocode.html – wf9a5m75

+0

약 100 점의 점수가 있습니다. 지도가로드 될 때. –

관련 문제