2017-02-05 3 views
0

Так что я пытаюсь геокодировать адрес с карт Google, но когда я пытаюсь получить доступ к результатам, он говорит, что массив, содержащий результаты, не определен. Я сделал полную противоположность этому, глядя на адрес из координат, предоставленный в PHP, я не уверен, почему это не работает. Я хотел бы просто проанализировать JSON, чтобы получить данные, которые я хочу (The Lat и long), но поскольку я не могу этого сделать, я сделал работу и просто сделал JSON.stringify и нашел Lat & long через str.locate("lat").Google maps Geocode results undefined

Однако, когда я анализирую ответ JSON из карт Google Я получаю

{ results: 
     [ { address_components: [Object], 
     formatted_address: '2985 NW Moda Way, Hillsboro, OR 97124, USA', 
     geometry: [Object], 
     place_id: 'ChIJt-G-MmcPlVQROzDAlEVj1nA', 
     types: [Object] } ], 
     status: 'OK' 
    } 

Если объект внутри геометрии, что я хочу, чтобы получить это, я использую библиотеку запроса от Node.js. И я консоль протоколирования JSON.parse(response.body);, чтобы получить набор результатов, но при попытке добраться до объекта результатов через

JSON.stringify(response.body.results[2]); результатов в TypeError: Cannot read property '2' of undefined

Edit: код, я использую запрос для Google Maps API

request('https://maps.googleapis.com/maps/api/geocode/json?address=' + address + '+' + parsedStreet + '&key=' + key, function(err, response) { 
    if (err) 
     console.log("holy shit error"); 
    console.log(JSON.parse(response.body.results)); 

который возвращает

undefined ^ SyntaxError: Unexpected token u in JSON at position 0

Адрес и parsedStreet - это значения адресов, которые я читаю из файла для преобразования в координаты.

+0

Можете ли вы показать нам свой 'request' код? – forrestmid

+0

В будущем, при обновлении, было бы полезно дать людям ссылку @ в комментариях, чтобы они знали, что вы ответили на их комментарий. – forrestmid

ответ

1

Похоже, вы пытаетесь получить доступ к индексу result, прежде чем на самом деле разбирать JSON в объект, поэтому вы пытаетесь получите индекс result из строки. Вы должны JSON.parse только тело ответа, а затем попадают в результаты, например, так:

console.log(JSON.parse(response.body).results); 
+0

Спасибо, сэр, что-то простое, как скобка. – Dringo