Googleマップで任意の2点間のルートを取得する
Googleマップでは指定した2点間の地図を表示させることができる。
新宿駅ー東京駅間
新宿駅ー池袋駅間 などの
と任意の2点間の地図を表示させることができる。
しかしこの作業は人間が「人力」で2か所の地点を入力する手間が発生する。
プログラムで自動的にマップを書き出す機能を追加する
GoogleMap.gs
function sendMapImageByEmail() {
// 画像を作成
var map = Maps.newStaticMap().setSize(600, 300);
// 徒歩ルートを取得
var directions = Maps.newDirectionFinder()
.setOrigin('新宿')
.setDestination('渋谷')
.setMode(Maps.DirectionFinder.Mode.WALKING) // ← 徒歩に設定
.getDirections();
// ルート情報を取得
var route = directions.routes[0];
var polyline = route.overview_polyline.points;
map.addPath(polyline);
// メール送信設定
const recipientEmail = 'xxx@yyy.com'; // 送信先のメールアドレス
var subject = '徒歩ルートマップの表示'; // 件名
var body = '新宿から渋谷までの徒歩ルートマップをお送りします。'; // 本文
// 地図画像を添付
var image = map.getBlob().getAs('image/png').setName('map.png');
GmailApp.sendEmail(recipientEmail, subject, body, { attachments: [image] });
}
これで新宿ー渋谷間の地図をxxx@yyy.comに送信する。
このスクリプトを実行すると指定したメールアドレスに地図が送られてくる
上記スクリプトでは新宿ー渋谷間の徒歩ルートの画像を送るスクリプトでしたのでこのような結果を得ることができます。
.setMode(Maps.DirectionFinder.Mode.WALKING)を設定する
DirectionAPIでは
機能項目 | 説明 |
---|---|
ルート | ある場所から別の場所へのルートをリクエストします。 |
移動手段 | 徒歩、車、交通機関、自転車でのルートを取得するには、移動手段を設定します。 |
中間地点 | 中間地点の停車地を含むルートを返すには、ウェイポイントを指定します。 |
交通状況の予測 | 経路の推定所要時間を返します。 |
場所の修飾子 | 場所の修飾子を指定して、ドライバーが特定の場所にどのように接近するかを指定します。 |
別の経路 | 可能であれば、複数のルートを返すように API に指示します。 |
を設定できますので、適宜カスタマイズして使用しましょう。
あとは指定したメールアドレスに地図の画像が送られてきて終了です。