2013-03-03 106 views
0

我正在尋找使用javascript,谷歌地圖api v3和pgoruting兩點之間的路線。現在我有下面的方法,當我只給一個航點時,它可以正常工作。但是當我不止一個航點的時候它不起作用。有多個航點的格式與此符號'|'一致。因此,對於例如:36.762121,14.7866553|35.988777778,14.655444333使用航點找到路線

JavaScript方法如下:

function calcRoute() { 

     var all_nodes = document.getElementById('result').innerHTML; 
     var node = all_nodes.split("|"); 

     var start = node[0]; 
     var end = node[node.length - 1]; 
     var wpts = []; 

     for (var i = 1; i < node.length-1; i++) { 
      wpts.push({ 
       location:node[i], 
       stopover:true 
      }); 
     } 

     var request = { 
      origin: start, 
      destination: end, 
      waypoints: wpts, 
      travelMode: google.maps.TravelMode.DRIVING 
     }; 

     directionsService.route(request, function (response, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
       directionsDisplay.setDirections(response); 
      } else { 
       alert('No route found'); 
      } 
     }); 
    }  
+0

您是否有一個示例_doesn't_ work?這工作正常:'36.762121,14.7866553 | 35.988777778,14.655444333' – geocodezip 2013-03-03 15:37:26

+0

正如[this](http://www.geocodezip.com/v3_GoogleEx_directions-waypoints_fromString.html):'36.762121,14.7866553 |意大利米蘭|瑞士蘇黎世| 35.988777778,14.655444333' – geocodezip 2013-03-03 15:46:21

+0

我已經嘗試了上面的例子,我已發佈的功能,我沒有結果。 @geocodezip – 2013-03-03 16:01:39

回答

1

實際這就是不正確的航點是位置的數組:經緯度和中途停留:真的還是假的,他們不使用管道分隔符,請參閱Waypoints

+0

我已經發布了我的修改後的JavaScript代碼,如鏈接所示,但仍然當我給它多個航點時,不會顯示任何路線。任何想法爲什麼會發生?@David Chase – 2013-03-03 15:06:28

+0

請發佈任何新的或修改的代碼,這樣我可以幫助你基於那個 – 2013-03-03 15:38:25

+0

A [waypoint](https://developers.google.com/maps/documentation/javascript/reference #DirectionsWaypoint)可以是包含位置的對象,該位置是google.maps.LatLng或字符串,但w如果它是一個字符串,我相信它是一個地址,而不是兩個座標。 – geocodezip 2013-03-03 15:39:38

0

如前所述,它可能有助於獲得位置的谷歌對象,它也可能有助於提供經緯度和長度爲兩個獨立的實體。

for (var i = 1; i < node.length-1; i = i + 1) { 
     node[i] = node[i].split(','); 
     wpts.push({ 
      location:new google.maps.LatLng(node[i][0], node[i][1]), 
      stopover:true 
     }); 
    } 
+0

當然。如果拆分工作,它只能用於經濟多頭,而不是文本輸入,因此可能是沒有意義的。除非文字有逗號 – Rafe 2013-03-03 17:48:45