ブロックリファレンス

BLOCKS Reference

Google Maps

地点間の道順を計算

概要

このブロックは、指定された地点間(例:始点「東京駅」・経由地点「横浜中華街」終点「鎌倉大仏」)の最適な道順を計算します。道順の計算結果は、データとして取得可能ですが、Googleマップを使った視覚的な確認もできます。

このブロックを使うと、以下のようなさまざまな要求に沿った最適な道順が取得できます。

  • 自動車や徒歩などのさまざまな移動手段での道順が知りたい
  • 有料道路や高速道路を回避した道順が知りたい
  • 過去の交通渋滞と現在の交通状況に基づいた移動時間が知りたい

warning本ブロックは、GoogleのDirections APIを利用しています。このためセルフサービスプランの場合は、利用するGCPプロジェクトにおいて、Directions APIを有効化しておく必要があります。

warningこのブロックは、Google Directions APIを利用しているため、他のGoogle Cloud Platform各種APIの料金に加えて、その利用量に応じた料金が別途発生します(従量課金制)。

料金について詳しくは、Directions API の使用量と請求額open_in_newを参照願います。移動手段に自動車を指定する、11地点以上を指定する、地点の指定にside_of_roadもしくはheadingの修飾子を指定した場合は、advancedopen_in_newの扱いになります。それ以外の場合は、basicopen_in_newの扱いになります。

※MAGELLAN BLOCKSは利用する機能に合わせて、データ保存先(Google Cloud StorageやBigQueryなど)の操作でGoogle Cloud Platformの各種APIを、機械学習の各機能でAI Platformの各種APIを利用しており、これらについても利用量に応じた料金が発生します。

プロパティ

プロパティ名 説明
ブロック名 ブロックの名前を指定します。ブロックに表示されます。
GCP APIキー

このブロックで使用するGCP APIキーを指定します。

GCP APIキーは、次の手順で作成します。

  1. Google Cloud Platformコンソールopen_in_newへ移動します。
  2. プロジェクトを選択します。
  3. 画面上部にある[認証情報を作成]ボタンをクリックします。
  4. APIキーを選択します。
始点・終点の場所が格納された変数

道順を計算したい始点・経由地点・終点のデータ(Place ID・住所・緯度経度)が格納された変数を指定します。地点は最大25地点まで指定できます。

変数には、以下いずれかの形式でデータを格納してください。

  • 配列:始点データ・経由地点データ・終点データの順に要素が並んだ配列。経由地点データは複数指定が可能(省略可)。
  • 配列の配列:複数の道順を計算したい場合。この例では、経由地点を省略。経由地点ありとなしのデータの混在も可能。
  • オブジェクトの配列:以下のキーを含んだオブジェクトの配列。経由地点は指定できない。
    キー 説明
    "origin" 始点データ
    "destination" 終点データ
    (図をクリックすると拡大表示されます。)

始点・経由地点・終点のデータは、以下のいずれかで指定します。

位置情報 説明
Place ID

Place IDの前には、place_id:を付ける必要があります。Place IDについては、Place IDsopen_in_newのページを参照してください。

住所

福岡県福岡市中央区今泉1丁目19ー22のような住所を指定します。この住所は、緯度経度の座標に変換されて道順の計算に利用されます。

緯度経度 33.5862718,130.3979053のように緯度と経度をカンマ(,)区切りで指定します。緯度と経度の間には、空白を入れないでください。

始点・経由地点・終点には、場所修飾子が使用できます。

場所修飾子 説明
side_of_road
  • ルートが道路のどちら側を通るかを指定するための設定
  • 指定例:side_of_road:37.7663444,-122.4412006
  • この設定は、移動手段プロパティで自動車を指定したときのみ利用可能
heading
  • ルートの進む方向を指定するための設定
  • 指定例:heading=90:37.773279,-122.468780
  • heading=X:修飾子で指定。Xは0(含む)から360(含まない)の整数度の値。0は北を示し、90は東を示し、時計回りに続く。
  • この設定は、移動手段プロパティで自動車もしくは自転車を指定したときのみ利用可能

info住所や緯度経度を使用するよりも、Place IDの使用をおすすめします。住所や緯度経度を使用すると、常にそれらが示す座標に最も近い道路への位置に補正されます。

道順を格納する変数

地点間の道順を計算した結果を格納する変数を指定します。

この変数には、以下に示すキーを含んだオブジェクトが格納されます。

キー 説明
distance

計算した道順の総距離を示します。単位はメートルです。

duration

計算した道順の移動時間を示します。

duration_in_traffic

所要時間を計算時の前提条件プロパティと希望する出発時刻プロパティの設定を加味して計算した道順の移動時間を示します。

origin_address

始点の住所を示します。

origin_location

始点の緯度経度を示します。

destination_address

終点の住所を示します。

destination_location

終点の緯度経度を示します。

url

計算した道順を反映したGoogleマップへのURLを示します。

以下は、出力されたオブジェクトの例です。

[
  {
    "distance": 18284,
    "duration": 1575,
    "duration_in_traffic": 1575,
    "origin_address": "日本、〒131-0045東京都墨田区押上1丁目1−2",
    "origin_location": "35.7108481,139.8129626",
    "destination_address": "日本、〒279-0031千葉県浦安市舞浜1−1",
    "destination_location": "35.6361065,139.8786193",
    "url": "https://www.google.com/maps/dir/?api=1&origin=...&destination=...&travelmode=driving"
  }
]
移動手段

どの移動手段を使って道順を計算するかを指定します。指定できる移動手段は、以下のいずれかです。

  • 自動車
  • 徒歩
  • 自転車

info日本国内の道順を計算する場合は、自動車と徒歩のみが有効です。

ブロックメモ ブロックに対するコメントを指定します。
回避したい道順

回避したい道順を以下から選択します。複数選択できます。

  • 有料道路
  • 高速道路
  • フェリー
希望する到着時刻

希望する到着時刻を、15:30のような「時間:分」形式で指定します。時間は24時間制で指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
希望する出発時刻

希望する出発時刻を、13:10のような「時間:分」形式で指定します。時間は24時間制で指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
所要時間を計算時の前提条件

所要時間を計算するときの前提条件を選択します。選択できる条件は、以下のいずれかです。

  • 過去と現在の交通状況のデータを基に見積る
  • 実際の移動時間よりも多めに見積もる
  • 実際の移動時間よりも少なめに見積もる
結果の言語

結果を返す言語を指定します。

サポートしている言語のリストは、Google Maps Platform FAQopen_in_newを参照してください。

エラー時の繰り返し回数

地点間の道順計算でエラーが発生した場合のやり直し回数を0以上の整数で指定します。

繰り返し間隔

エラー時の繰り返し回数プロパティで1以上が指定されたときに、何秒間隔で繰り返すかを0以上の整数で指定します。

使用例

ここでは、「地点間の道順を計算」ブロックを使って、BigQuery上の始点・終点データから地点間の道順を求めるケースを取り上げます。

前提として、BigQuery上の始点・終点データは、以下のように定義されているものとします。

始点・終点データ:
starting_point ending_point
東京駅 東京スカイツリー
東京駅 東京タワー
スキーマ情報:
カラム名 タイプ モード
starting_point STRING NULLABLE
ending_point STRING NULLABLE
テーブル情報:
GCPプロジェクト名 my-project
データセット名 example
テーブル名 point2point
データ概要:
カラム 内容
starting_point 求めたい地点間の道順の始点
ending_point 求めたい地点間の道順の終点

「地点間の道順を計算」ブロックを使用する場合は、「オブジェクトの配列形式」のデータを変数で入力する必要があります。

infoその他に「配列形式」および「配列の配列形式」のデータでも構いませんが、MAGELLAN BLOCKSで一般的な形式である「オブジェクトの配列形式」をここでは扱います。

オブジェクトの配列形式」とは、下図のような配列の各要素がオブジェクトであるデータ形式のことです。

しかし、今回のサンプルではBigQuery上のデータの形式が異なるため、何らかの方法でオブジェクトの配列形式に変換したデータを変数に格納する必要があります。

これには、「クエリーの実行」ブロックが役立ちます。なぜなら、「クエリーの実行」ブロックのクエリー結果は、オブジェクトの配列形式で変数に格納できるからです。

infoオブジェクトの配列形式のデータを変数で入力する必要があるブロックは、「クエリーの実行」ブロックと組み合わせて使うと便利です。

今回のケースでは、以下のクエリー文で「クエリーの実行」ブロックを実行すると、「地点間の道順を計算」ブロックの入力に必要なデータ形式へ変換できます。

SELECT
  starting_point AS origin,
  ending_point AS destination
FROM
  example.point2point

上記クエリー文で、「クエリーの実行」ブロックを実行すると、下図のようなオブジェクトの配列形式のデータが、変数へ格納されます。

このように、「クエリーの実行」を使うと、BigQuery上のデータを簡単に変換・加工できます。

例えば、以下のように「クエリーの実行」ブロックと「地点間の道順を計算」ブロックをつなげると、BigQuery上の始点・終点データから地点間の道順を簡単に求められます。

結果は、下図のようなオブジェクトの配列形式で変数に格納されます。

変数に格納されるデータの形式は、オブジェクトの配列であるため、この形式で入力可能なブロックと組み合わせると便利です。例えば、「変数からテーブルへロード」ブロックは、オブジェクトの配列形式のデータを変数で入力し、BigQueryテーブルにそのデータを格納してくれます。

ということで、以下のように「地点間の道順を計算」ブロックに「変数からテーブルへロード」ブロックを繋げると、始点・終点データから地点間の道順を求めたデータをBigQueryテーブルへ簡単に格納できます。

このフローを実行すると、以下のような形でBigQueryテーブルにデータが格納されます。

distance duration duration_in_traffic origin_address origin_location destination_address destination_location url
8679 1068 1068 日本、〒100-0005 東京都千代田区丸の内1丁目9 東京駅 35.6774972,139.7660974 日本、〒131-0045 東京都墨田区押上1丁目1−2 35.7108481,139.8129626 https://www.google.com/maps/dir/?api=1&origin=35.6774972%2C139.7660974&destination=35.7108481%2C139.8129626&travelmode=driving
3018 550 550 日本、〒100-0005 東京都千代田区丸の内1丁目9 東京駅 35.6780551,139.7628529 日本、〒105-0011 東京都港区芝公園4丁目2−8 35.6585951,139.7462833 https://www.google.com/maps/dir/?api=1&origin=35.6780551%2C139.7628529&destination=35.6585951%2C139.7462833&travelmode=driving

この情報は役に立ちましたか?