2017-07-30 47 views
0

我正在使用Google Maps API通過LAT和LON獲取高程值,但我總是收到未定義的對象。從URL中獲取JSON的未定義元素

我的腳本是這樣的:

<script type="application/javascript"> 
     function findAltitude() { 
      var lat = document.getElementById('lat').value; 
      var lon = document.getElementById('lon').value; 

      var url = "https://maps.googleapis.com/maps/api/elevation/json?locations=11,11&key=<API_KEY>"; 

      var json, data; 

      $.ajax({ 
        dataType: "json", 
        url: url, 
        data: data, 
        success: function(data) { 
         alert(data.results.elevation); 
        } 
       }); 
     } 

    </script> 

和我的JSON是這樣的:

{"results" : [ 
    { 
    "elevation" : 402.0888977050781, 
    "location" : { 
     "lat" : 11, 
     "lng" : 11 
    }, 
    "resolution" : 152.7032318115234 
    }],"status" : "OK"} 

回答

3

results在發佈JSON包含一個數組。所以你可能想記錄例如第一個結果標高如此:alert(data.results[0].elevation);

1

結果是一個數組,因此是您的問題。

改變這一行:

data.results.elevation 

有了:

data.results[0].elevation 
1

你可以做

 $.ajax({ 
       dataType: "json", 
       url: url, 
       data: data, 
       success: function(data) { 
        alert(data.results[0].elevation); 
       } 
      }); 
    }