所以我试图对谷歌地图中的地址进行地理编码,但是当我尝试访问结果时,它说包含结果的数组未定义。我已经做了与此完全相反的事情,从坐标中查找地址,假设这是在 PHP 中,我不确定为什么这不起作用。我只想解析 JSON 以获取我想要的数据(纬度和经度),但由于我无法做到这一点,所以我做了一个解决方案,只是做了 JSON.stringify 并找到了纬度和经度通过str.locate(“lat”)
。
但是,当我解析来自谷歌地图的 json 响应时,我得到了这个
{ 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]);
结果
类型错误:无法读取未定义的属性“2”
编辑:我正在使用谷歌地图 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));
返回
未定义
^ SyntaxError:JSON 中位置 0 处出现意外标记 u
address 和 parsedStreet 是我从文件中读取以转换为坐标的地址值
最佳答案
看起来您在实际将 JSON 解析为对象之前尝试访问 result
索引,因此您尝试从以下位置获取 result
索引一个字符串。您只需要 JSON.parse
响应正文,然后获取结果,如下所示:
console.log(JSON.parse(response.body).results);
关于javascript - 谷歌地图地理编码结果未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42057029/