2011-08-30 59 views
0

我想从GoogleMaps返回的响应对象中访问start_address。googlemaps返回的解析响应

尝试:

response['start_address'] 
response['routes']['start_address'] 
response['routes']['legs']['start_address'] 

谷歌地图:

directionsDisplay = new google.maps.DirectionsRenderer(); 
directionsDisplay.setMap($gmap); 
directionsDisplay.setPanel(document.getElementById(directionHtml)); 
directionsService.route(request, function(response, status){ 
    if(status == google.maps.DirectionsStatus.OK){ 
      directionsDisplay.setDirections(response); 
      alert(response['routes']['legs']['start_address']); 
    } 
}); 

response.toSource()根据你亲什么

({routes:[ 
    {bounds:{ba:{b:53.51456, d:53.529900000000005}, V:{d:-1.1919300000000002, b:-1.1283400000000001}}, 
    copyrights:"Map data \xA92011 Tele Atlas", 
    legs:[ 
     {distance:{text:"5.9 km", value:5910}, 
     duration:{text:"11 mins", value:688}, 
     end_address:"18 Spring Lane, Sprotbrough, Doncaster DN5 7, UK", 
     end_location:{Pa:53.51555, Qa:-1.1919299999999566}, 
     start_address:"42 High St, Doncaster DN1 1, UK", start_location:{Pa:53.52307, Qa:-1.1337300000000141}, steps:[ 
ETC... 

回答

1

vided我只能拿出响应的这种结构(不完全当然):

// for testing purposes I assume to have the actual response 
// assigned to a response var 
var response = { 
routes:[{ 
     bounds:{ba:{b:53.51456, d:53.529900000000005}, V:{d:-1.1919300000000002, b:-1.1283400000000001}}, 
     copyrights:"Map data \xA92011 Tele Atlas", 
     legs:[{ 
       distance:{text:"5.9 km", value:5910}, 
       duration:{text:"11 mins", value:688}, 
       end_address:"18 Spring Lane, Sprotbrough, Doncaster DN5 7, UK", 
       end_location:{Pa:53.51555, Qa:-1.1919299999999566}, 
       start_address:"42 High St, Doncaster DN1 1, UK", start_location:{Pa:53.52307, Qa:-1.1337300000000141} 
      }] 
    }] 
}; 

如果你这样做response.routes[0].legs[0].start_address返回42 High St, Doncaster DN1 1, UKroutes属性是一个数组,因此可能会出现需要迭代才能从索引获取不同值的情况,如果这种情况只是迭代它并用迭代器变量替换0

+0

您的传奇,非常感谢您的工作。 –