谷歌距离矩阵api多次回调

时间:2013-01-04 10:33:30

标签: matrix callback google-api distance

我是这个帖子问题的新手,首先请对不起我的英语和语法等等。我为我的项目做了这个,我长期坚持这种情况仍然无法解决。任何人遇到类似的问题或知道如何克服它请赐教!谢谢大家阅读本文。

Scenario-     我需要计算许多起源和目的地之间的距离,并且由于Google API的限制,我必须将我的目的地分成几个数组并放入for循环以请求结果。我知道google api有异步的东西,所以我在这里面临一些困难,我的javascript / php语言不强;(

我尝试使用for循环来调用多个请求并从回调中收集结果来执行操作,但我现在继续获得3个请求的“UNKNOWN ERROR”状态,并且两个获得该状态。我的示例代码如下:

(目的地有许多分成几个数组)

<script>
var tempArray = new Array();
for(var i = 0 ; i < fullDestArray.length ; i++){
   //push the fullDestArray into another temp array
   tempArray.push(fullDestArray[i]);

  if(condition of matching the limit for each request maximum destinations)
  { 
      requestCalculate(tempArray);
      tempArray.length = 0; // reset the array for next loop
  }


}


//google api part
function  requestCalculate(arrayReceived){ 
var service = new google.maps.DistanceMatrixService();


service.getDistanceMatrix(
{
origins: originArray, //from other palces

destinations: arrayReceived,//[destinationC, destinationA,destinationB],
travelMode: google.maps.TravelMode.DRIVING,
avoidHighways: false,
avoidTolls: false
}, callback2 );

function callback2(response, status) {

if (status != google.maps.DistanceMatrixStatus.OK) {

}else{

//Perform some adjustment on result and push to another array for further action.

  if(finish all callback)
   { 
    doThing();
   }  

  }
 } 
}

doThing()
{
  //perform task

} 

</script>   

0 个答案:

没有答案