2013-12-11 23 views
1

我正在尝试使用谷歌距离矩阵制作一个旅行计算器,我试图从点a到点b得到距离计算,然后从点b返回到点一个。我通常只需加上两个以获得总距离值,但由于单向街道和高速公路路口等原因,一条路线可能比另一条路线长。Google距离矩阵返回4组结果来自2组开始/目的地

我使用下面的代码:

 getdistance:{ 
     options:{ 
      origins:["pe219px","ng323rj"], 
      destinations:["pe219px","ng323rj"], 
      travelMode: google.maps.TravelMode.DRIVING, 
      unitSystem: google.maps.UnitSystem.IMPERIAL 
     }, 
     callback: function(results, status){ 
      var html = ""; 
      if (results){ 
      for (var i = 0; i < results.rows.length; i++){ 
       var elements = results.rows[i].elements; 
       for(var j=0; j<elements.length; j++){ 
       switch(elements[j].status){ 
        case "OK": 
        var sd=$(this).text(); 
        html += parseInt(elements[j].distance.text) + "<br />"; 
        break; 
        case "NOT_FOUND": 
        html += "The origin and/or destination of this pairing could not be geocoded<br />"; 
        break; 
        case "ZERO_RESULTS": 
        html += "No route could be found between the origin and destination.<br />"; 
        break; 

这给我结果:

1 
25 
26 
1 

我不知道哪里的都来自1,我可以看到,25吗? 26回来了,但为什么那里呢?

我不得不看看下面的帖子: Google Maps DistanceMatrix

它建议使用:

origins: [base], 
destinations: [start, end], 

这将返回:

25 
1 

我也曾尝试的开始和结束其他方式给我:

1 
26 

回答

2

1代表pe219pxpe219pxng323rjng323rj

的API还没有检查的起点和终点都是平等的,你总是会得到 numberOfOrigins X numberOfDestinations结果:

pe219px to pe219px 
pe219px to ng323rj 
ng323rj to pe219px 
ng323rj to ng323rj