2014-07-23 47 views
1

我正在一個網站上提供山峯愛好者的山峯個人名單。谷歌地圖pathRequest不適用於多段線

我被困在谷歌地圖polyline自年齡的功能(pathRequest)

我無法理解,因爲此代碼是來自許多來源的副本,並且遺憾的是,Firefox調試與Google地圖無法很好地協作......讓事情變得最糟糕。

這裏的頁面: http://www.mes-sommets.fr/ajouter-un-sommet/

要進行測試,您需要輸入"adresse départ"(開始)and 「住址Arrivée酒店」(完)+ 「曼努埃爾」 mode in option 「itinéraire」`。

在自動完成中單擊"adresse arrivée"時會顯示錯誤。

對於兩個選項:

- automatique (google map direction service) -- OK 
- manuel (polyline) -- KO 

然後我打電話相同功能:

- distance calculation getDistance(path) 
- elevation calculation plotElevation(results, status) 

模式AUTOMATIQUE(谷歌地圖方向服務):

var path = result.routes[0].overview_path; 
getDistance(path); 

模式manu EL(折線):

var polyline_path = polyline.getPath(); 
getDistance(polyline_path); 

功能getDistance的:

功能getDistance的(路徑){

變種米= google.maps.geometry.spherical.computeLength(路徑) ;
var km = m/1000;

document.getElementById(「ninja_forms_field_34」)。value = km.toFixed(2)+「km」;
VAR pathRequest = { '路徑':路徑, '樣品':256}

elevator.getElevationAlongPath(pathRequest,plotElevation);

};

功能plotElevation:

功能plotElevation(結果,狀態){如果(狀態== google.maps.ElevationStatus.OK){

var deniv_positif = 0; 
var deniv_negatif = 0; 
var elev = results[0].elevation; 
for (var i = 0; i < results.length; i++) { 

    if ((results[i].elevation - elev) > 0) { 
    deniv_positif = deniv_positif + (results[i].elevation - elev); 
    } 
    else { 
    deniv_negatif = deniv_negatif + (results[i].elevation - elev); 
    } 

    elev = results[i].elevation; 

} 
document.getElementById("ninja_forms_field_31").value = "+" + deniv_positif.toFixed(0) + "/" + deniv_negatif.toFixed(0) + " m" ; 

}}

如果我沒有提供足夠的代碼,請告訴我任何建議。希望它是好的。

最好的問候,

本傑明

回答

0

我能看到的唯一的事情是這樣的。

DirectionsRouteoverview_path

「LatLngs的陣列」 的ElevationServicegetElevationAlongPath函數需要PathElevationRequest具有用於它的路徑的陣列

所有好爲止......

然而,PolylinegetPath函數返回一個回MVCArray,不只是一個陣列

通常它們對我來說似乎很相通,但這可能是一個他們沒有的地方。

您可以嘗試調用MVCArray上的getArray函數將其轉換爲數組並查看是否有任何區別。

var polyline_path = polyline.getPath(); 
getDistance(polyline_path.getArray()); 
+0

你好鄧肯,這很完美!謝謝。 – user3759261

+0

酷!如果它是有用的,請隨時[接受答案](http://stackoverflow.com/help/accepted-answer)爲正確的 – duncan

相關問題