2014-10-16 68 views
0

這是我的腳本:無法讀取性能

  if(entfernung2<=1 && drive=="AUT"){ 
       dauer = new google.maps.DistanceMatrixService(); 
       dauer.getDistanceMatrix({ 
       origins: ["48.142362,11.549859"], 
       destinations: ["48.2,11.4"], 
       travelMode: google.maps.TravelMode.WALKING, 
       unitSystem: google.maps.UnitSystem.METRIC, 
       }) 
      dauer1=dauer.rows.elements.duration.text; 
      }; 

如果我登錄顯示dauer1以下錯誤:

遺漏的類型錯誤:無法讀取未定義 遺漏的類型錯誤的特性「元素」:無法讀取屬性「應用「的未定義

什麼錯了? :/

編輯:

  if(entfernung2<=1 && drive=="AUT"){ 
       dauer = new google.maps.DistanceMatrixService(); 
      dauer.getDistanceMatrix(
      { 
       origins: ["48.142362,11.549859"], 
       destinations: ['"'+data.position.latitude+','+data.position.longitude+'"'], 
       travelMode: google.maps.TravelMode.WALKING, 
       unitSystem: google.maps.UnitSystem.METRIC 
      }, setDauer1); 

      function setDauer1(response, status) { 
       dauer1 = response.rows[0].elements[0].duration.value; 
       console.log(dauer1); 
      }}; 
+0

'dauer.rows'是一個數組,它沒有'elements'屬性。但數組的對象(例如'dauer.rows [0] .elements.duration.text') – blex 2014-10-16 18:38:48

+0

現在我得到錯誤Uncaught TypeError:無法讀取屬性'0'的undefined – 2014-10-16 18:41:03

+0

Json看起來像這樣: { 「 destination_addresses 「:[ 」舊金山,CALIFORNIE,États-紫光「], 」origin_addresses「:[ 」溫哥華,不列顛哥倫比亞省,加拿大「], 」行「:[ { 」元素「:[ { 」 距離「:{ 」文本「: 」1709公里「, 」值「:1709199 }, 」持續時間「:{ 」文本「: 」3 JOURS 19個HEURES「, 」值「:327594 }, 「狀態」: 「OK」 } ] } ], 「狀態」: 「OK」 } – 2014-10-16 18:41:33

回答

0

getDistanceMatrix是異步的,所以dauer被更新之前dauer1定義。通過查看docs,您需要回撥:

dauer.getDistanceMatrix(
{ 
    origins: ["48.142362,11.549859"], 
    destinations: ["48.2,11.4"], 
    travelMode: google.maps.TravelMode.WALKING, 
    unitSystem: google.maps.UnitSystem.METRIC 
}, setDauer1); 

function setDauer1(response, status) { 
    dauer1 = response.rows[0].elements[0].duration.text; 
    // your code continues here 
} 
+0

謝謝:) ...現在我得到的錯誤遺漏的類型錯誤:無法讀取屬性「如果(entfernung2 <= 1 && drive ==「AUT」){ dauer = new google.maps.DistanceMatrixService();不能讀取空值的屬性'0' – 2014-10-16 18:50:11

+0

。 dauer.getDistanceMatrix( { 起源:[ 「48.142362,11.549859」], 目的地:[ 「48.2,11.4」], travelMode:google.maps.TravelMode.WALKING,用於, unitSystem來:google.maps.UnitSystem.METRIC },setDauer1); function setDauer1(response,status){ dauer1 = response [0] .rows.elements.duration.text; }}; – 2014-10-16 18:50:28

+0

@SebastianLzlem我剛剛更新了這一行。 'elements'也是一個數組,所以如果你想要第一個元素,添加'[0]'。請注意,這段代碼不檢查是否有實際結果。 – blex 2014-10-16 18:56:18