大したスクリプトではないのですが、同じことをしようと思っている方がいるかもしれないので記事にしました。
背景
新型コロナウイルスのワクチン接種がスタートしてしばらく経ちますが、自治体によっては接種券が配布されて予約ができるようなところも増えていると思います。国や自治体が実施している大規模接種もありますが、近隣の病院で予約を取ることも可能です。
私の住む板橋区では、ありがたいことにウェブページにて予約を受け付けている病院の一覧を公開してくれています 1 。しかし、住所を見ただけでは家から近いのか、ワクチンを打って帰ってこれる距離なのかがわからず、かといって全部の病院を地図で調べるのも手間です。なので、スクリプトで所要時間を計算して近い病院を探すことにしました。
使い方
実際のスクリプトはこちらです。
https://github.com/hako017/gasGetRequiredTime/blob/main/%E3%82%B3%E3%83%BC%E3%83%89.gs
- スプレッドシートを作成します。
- スプレッドシートに機関一覧の情報をコピーします2。
- GAS のエディタを開き3、コードをコピペしてください。
- コードの必要な部分を修正します。(詳細は次のセクションを参照)
- 実行する関数を
myFunction
に変更して実行します。 - 権限を求められたら許可してください。
- 実行結果がスプレッドシートの指定された場所に書き込まれます。
あとは結果をもとにソートするなりしてあげてください。
実行する前に修正する部分
/** 出発地 */
const origin = "" // ここに出発地を入力
上記の変数には出発地(住所など)を記載してください。
/** 住所一覧が記載されている行のはじめ */
var destRow = 2
/** 住所一覧が記載されている列 */
var destCol = 2
この箇所でデータを取ってくる開始行と列を指定しています。実際のスプレッドシートに合わせて変更してください。
上のコードでは、開始行は2行目、読み取る列は2列目となっています。
// スプレッドシートへと書き込む
range = sheet.getRange(2, 4, list.length, list[0].length)
この箇所でスプレッドシートに結果を書き込んでいます。getRange(2, 4, ...)
の2, 4がそれぞれ開始行と書き込む列を指定していますので、実際のスプレッドシートに合わせて変更してください。
参照
こちらに掲載されているコードを参考にさせていただきました。ありがとうございます。
変更点としては以下の通りです。
- 移動手段を自動車から[徒歩もしくは公共交通機関]へと変更
- 移動経路が取得できなかった場合の処理を追加4
車での経路を探したい方は参照元のコードを参考にしていただければ幸いです。
-
https://www.city.itabashi.tokyo.jp/kenko/kenshin/yobou/1030911/1032756.html ↩
-
スプレッドシートの関数
importHTML
を使うとhtmlファイルから表をインポートすることもできます。 ↩ -
GAS の詳しい使い方は説明しませんが、Qiita に記事があると思うのでそちらを探してみてください。 ↩
-
移動経路が取得できない場合のほかに時間が極端に長くなる場合もありました。Google Map で手動で検索すると検索できる場合が多いので、変な結果があった場合は手動で検索してみてください。 ↩