グーグルスプレッドシートで乗り換え時間をApps Scriptで調べる

乗り換え時間をたくさん調べたかったのでGoogle Apps Scriptを書きました。スプレッドシートのメニューのツール→スクリプト エディタから以下のスクリプトを入力

function getDirectionTimeInSec(origin, destination) {
  var now = new Date();
  var finder = Maps.newDirectionFinder()
    .setOrigin(origin)
    .setDestination(destination)
    .setDepart(now)
    .setMode(Maps.DirectionFinder.Mode.TRANSIT);
  var directions = finder.getDirections();
  if (directions.routes.length == 0) {
    throw "no route";
  }
  var route = directions.routes[0];
  if (route.legs.length == 0) {
    throw "no leg";
  }
  var time = route.legs[0].duration.value;
  Logger.log("time = " + time);
  return time;
}

function getDirectionTimeInMin(origin, destination) {
  return Math.ceil(getDirectionTimeInSec(origin, destination) / 60);
}

function debugGetDirectionTime() {
  return getDirectionTimeInMin("Shibuya", "Shinjuku");
}

スプレッドシートからは以下のように使います