Google API的ImportXML / HTML问题

时间:2018-09-06 03:20:07

标签: google-maps google-sheets google-direction

我正在努力从importxml到googlesheet获得任何结果。以前我得到的输出反映了距离,但是现在出现错误“导入的内容为空”。

 =importxml("http://maps.googleapis.com/maps/api/directions/xml?origin=" & B9 & "&destination=" & D9 & "&sensor=false&alternatives=false","//leg/distance/value")/1000*0.621371

有人在这里知道解决方法吗?我也尝试过使用我的api密钥,并且遇到了类似的问题:

=IMPORTHTML("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=bay+shore,ny&destinations=New+York+City,NY&key=XXXXXXX", "table",3)

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这只是初学者的尝试,因此欢迎进行改进,但是查看geocodezip发布的URL,您可以将该URL传递给UrlFetchApp.fetch,并在响应的JSON.parse上使用getContentText()

您可以在工作表中将其用作用户定义的功能,并使用Logger.log(GETDISTANCE());通过控制台进行检查

function GETDISTANCE() {
  
    var res= UrlFetchApp.fetch("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=bay+shore,ny&destinations=New+York+City,NY&key=");
    var content = res.getContentText();
    var json = JSON.parse(content);
    
    return json.rows[0]["elements"][0]["distance"].text;
}

您希望将URL和位置部分移动到传递给该函数的参数中,以使其更加通用。

我通过检查如下所示的JSON结构,确定了用于提取里程文本的路径:

enter image description here