解析谷歌地图返回的响应

时间:2011-08-30 09:39:56

标签: javascript google-maps

我正在尝试从GoogleMaps返回的响应对象中访问start_address。

尝试:

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

Google地图:

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 个答案:

答案 0 :(得分:1)

根据您提供的内容,我只能提出这种响应结构(当然不完整):

// 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