ブロックリファレンス

BLOCKS Reference

Google Maps

地点間の道順を計算

概要

このブロックは、指定された地点間の最適な道順を計算します。道順の計算結果は、データとして取得可能ですが、Googleマップを使った視覚的な確認もできます。

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

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

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

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

料金について詳しくは、Google Maps Platform料金表open_in_newのルート- Directionsの項を参照願います。

※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・住所・緯度経度)が格納された変数を指定します。

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

  • 配列:始点データ・終点データの順に要素が並んだ配列
  • 配列の配列:上記配列の配列(複数の始点・終点ペアの道順を計算したい場合)
  • オブジェクトの配列:以下のキーを含んだオブジェクトの配列
    キー 説明
    "origin" 始点データ
    "destination" 終点データ
    (図をクリックすると拡大表示されます。)

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

位置情報 説明
Place ID

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

住所

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

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

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

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