2011-05-27 19 views
4

GDirections谷歌地圖API類幫助我「顯示」兩個提供的座標之間的路線。如何通過API V3獲取谷歌地圖上顯示的路線航點列表?

現在我想的ALL該航線上的座標列表。

任何提示如何得到這個?

編輯 剛纔發現http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsRoute

overview_path屬性賦予路徑的所有航點的名單。 是DirectionsRoute這個問題的正確的類或者我錯過了一些觀點?

編輯 - 2

與下面mkram0所示的this link幫助下,我已經修改了代碼如下:

地圖上越來越顯示出來。 路由IS正在顯示。

我想放置標記的路線上的前四個座標。這些標記不會顯示。任何幫助?請。

directionsService.route (request, 
          function (result, status) 
          { 
           if (status == google.maps.DirectionsStatus.OK) 
           { 
            directionsDisplay.setDirections (result); 

            for (var route in result.routes) 
            { 
             for (var leg in route.legs) 
             { 
              for (var step in leg.steps) 
              { 
               for (var latlng in step.path) 
               { 
                pointsArray.push(latlng); 
               } 
              } 
             } 
            } 

            var point1 = new google.maps.Marker ({ 
             position:pointsArray[0], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 

            var point2 = new google.maps.Marker ({ 
             position:pointsArray[1], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 

            var point3 = new google.maps.Marker ({ 
             position:pointsArray[2], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 

            var point4 = new google.maps.Marker ({ 
             position:pointsArray[3], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 
           } 
          }); 
+0

你能展示你已有的代碼,所以我們有一個起點嗎? – Trott 2011-05-27 15:53:50

+0

我沒有故意放任何代碼。原因:我的代碼僅包含顯示標記及其之間路線的方式。我沒有編寫用於顯示該路線上所有「航點/座標」的代碼,因爲我不知道哪個API(默認方法)負責此操作。其次,我不希望任何人爲我編寫代碼,我只是想知道是否存在一個負責此API的API?或者有一些知道的算法可以實現相同的? – 2011-05-30 06:12:04

回答

5

解決這個自己:) 的overview_path是正確的方法W.R.t顯示座標: 只是爲了檢查這是否真的顯示了某些內容,我在結果的前四個座標上顯示了標記。

directionsService.route (request, 
          function (result, status) 
          { 
           alert(status); 
           if (status == google.maps.DirectionsStatus.OK) 
           { 
            directionsDisplay.setDirections (result); 

            var pointsArray = []; 

            pointsArray = result.routes[0].overview_path; 

            var point1 = new google.maps.Marker ({ 
             position:pointsArray[0], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 

            var point2 = new google.maps.Marker ({ 
             position:pointsArray[1], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 

            var point3 = new google.maps.Marker ({ 
             position:pointsArray[2], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 

            var point4 = new google.maps.Marker ({ 
             position:pointsArray[3], 
             draggable:true, 
             map:map, 
             flat:true 
             }); 
3

的overview_path醫生說它返回

代表此路線的 整個過程LatLngs的數組。路徑 被簡化以便使其 適用於需要小數量的頂點的上下文中。

我不認爲這意味着與返回路線上所有路標的數組一樣。在你的問題中,我不清楚你是否需要航點或座標(經緯度)或兩者。如果我是你,我還考慮legs,它返回

DirectionsLegs的陣列,每個 其中包含關於它是由 步驟的信息。有 將爲每個航點或 目的地指定一條腿。

DirectionsLeg,我想你也應該看看stepsvia_waypoints

+0

我認爲航點和座標是彼此的同義詞:rolleyes:當然我想要LatLongs。感謝澄清。 – 2011-05-31 05:55:24

相關問題