Разбор ответа, возвращаемого googlemaps - PullRequest
0 голосов
/ 30 августа 2011

Я пытаюсь получить доступ к start_address из объекта ответа, возвращенного из GoogleMaps.

Пробовал:

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 Ответ

1 голос
/ 30 августа 2011

Исходя из того, что вы предоставили, я могу только придумать такую ​​структуру ответа (не полная, конечно):

// 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, UK. Свойство routes является массивом, поэтому могут быть случаи, когда вам нужно выполнить итерацию для получения различных значений из индексов, в этом случае просто выполните итерацию по нему и замените 0 переменной итератора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...