【问题标题】:Please help me with API interface of google maps in google sheet请帮助我在谷歌表中使用谷歌地图的 API 接口
【发布时间】:2021-03-26 06:59:50
【问题描述】:

我正在尝试通过脚本使用谷歌地图方向 API 获取谷歌中两个位置之间的距离。

但是,关注YouTube video 并在google API documentation 中自行研究。

我无法解决以下代码中的错误。

错误

“无法读取未定义的属性‘腿’”

 function GT() {
  var app = SpreadsheetApp;
  var ss1 = app.getActiveSpreadsheet();
  var mapsheet = ss1.getActiveSheet();
  var start = mapsheet.getRange('B1').getValue;
  var end = mapsheet.getRange('B2').getValue();

  var directions = Maps.newDirectionFinder()
    .setOrigin(start)
    .setDestination(end)
    .setMode(Maps.DirectionFinder.Mode.DRIVING)
    .getDirections();
  var routes = directions.routes[0]

  mapsheet.getRange('A6:D10').clear();

  var nextrow = mapsheet.getLastRow() +1 ;
  const ro = directions.routes[0];

  for (var i = 0; i < 2; i++)
  {
    
    var ea = ro.legs[1].end_address;
    var sa = ro.legs[1].start_address;
    var distance = ro.legs[1].distance.text;
    var duration = ro.legs[1].duration.text;

    mapsheet.getRange(nextrow,1).setValue(sa);
    mapsheet.getRange(nextrow,1).setValue(ea);
    mapsheet.getRange(nextrow,1).setValue(distance);
    mapsheet.getRange(nextrow,1).setValue(duration);


  }

【问题讨论】:

  • 嗯,这就是我喜欢编码的原因????...
  • 嗨 Navneet,您的问题解决了吗?
  • 是的,经过多次修改,我能够做到这一点。谢谢
  • my answer 对此有用吗?如果是这种情况,请考虑接受并支持它(请参阅*.com/help/someone-answers)。

标签: javascript api google-maps google-sheets


【解决方案1】:

问题:

您在检索 start 的值时忘记了 ()

var start = mapsheet.getRange('B1').getValue;

因此,您正在检索方法 getValue(),而不是单元格值。

因此,roundefined(原点必须是与地址对应的字符串),因此您无法检索其 legs 属性。

解决办法:

getValue() 添加()

var start = mapsheet.getRange('B1').getValue();

这应该可以解决您的问题,假设单元格 B1B2 包含正确的地址。

【讨论】:

    最近更新 更多