2

我有一个这样的 JSON——

  ....
        "location" : {
           "lat" : 37.42140090,
           "lng" : -122.08537010
        },
  ....

我正在尝试访问 lat 和 lng 值。我该怎么做?

我的代码

     results[0].geometry.location.lat
  or results[0].geometry.location.lng

不起作用。但是当我只使用 results[0].geometry.location 时,我得到了输出。

我使用的 JSON 是 -- http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true

更新 -

这就是我向 API 发出请求的方式

           geocoder.geocode( { 'address': search_addr}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var t = results[0].geometry.location.lat;
            } else {
              alert('Geocode was not successful for the following reason: ' + status);
            }

谢谢

4

2 回答 2

5

我试过你的代码

alert(json.results[0].geometry.location.lat);

正如你在这个小提琴中看到的那样:

http://jsfiddle.net/SWTZQ/

于 2013-04-18T08:14:00.993 回答
3

使用 Google 的 JavaScript API 时,您通常不会直接与解析后的 JSON 交互,而是与wrapper Object交互。

具体来说,results[0].geometry.location将是google.maps.LatLng. 因此,与其保持值本身,lat不如lngreturn这些值作为方法:

var geoLoc = results[0].geometry.location;
var lat = geoLoc.lat();
var lng = geoLoc.lng();
于 2013-04-18T09:01:35.397 回答