ブロックリファレンス

BLOCKS Reference

Google Maps

移動経路のスナップを取得【アルファ版】

このブロックはアルファ版です。利用にあたっては利用申請が必要です。提供している機能は完全でない場合があり、下位互換性のない変更を加える可能性もあります。このため、テスト環境での使用に適しています。利用申請/機能改善の要望/不具合の報告などは、MAGELLAN BLOCKSのお問い合わせ機能からお願いします。

概要

このブロックは、Google Maps PlatformのRoads APIを使って、GPSの位置情報リスト(最大100地点)から、実際に通った可能性の高い近辺の道路にスナップした移動経路を取得します。

移動経路のスナップを取得ブロックの概念図

(画像をクリックすると拡大表示されます。)

位置情報が、GPSから取得したものでない場合は、「経緯度から近い区間を取得【アルファ版】」ブロックを使用してください。

セルフサービスプランの場合は、利用するGCPプロジェクトにおいて、Roads APIを有効化する必要があります。

このブロックは、Google Maps PlatformのRoads APIを利用しているため、その利用量に応じた料金が別途発生します(従量課金制)。料金について詳しくは、Google Maps Platform料金表のルート- Snap to Roadsの項を参照願います。

MAGELLAN BLOCKSでは、利用する機能に合わせて、さまざまなAPIを利用しています。これらについても利用量に応じた料金が発生します。

  • データ保存先(Google Cloud StorageやBigQueryなど)の操作:Google Cloud PlatformのAPI
  • 機械学習の各機能:AI PlatformのAPI

プロパティ

プロパティ名 説明
ブロック名

編集パネルに配置した当該ブロックの表示名が変更できます。

ブロックリストパネル中のブロック名は変更されません。

GCP APIキー

このブロックで利用するGoogle Maps Platform APIに必要なGCPのAPIキーを指定します。

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

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

GPS位置情報リスト(最大100地点)が格納された変数を指定します。

変数値は、オブジェクトもしくはオブジェクトの配列で準備します。オブジェクトの形式は、以下の通りです。

{
  "location":経緯度,
  "任意のキー":任意の値
}
キー
location 文字列

緯度・経度の順で、カンマ区切りで指定します(例:"35.710063,139.8107")。

以下は、オブジェクトをオブジェクト生成ブロックで指定した例です。

オブジェクトをオブジェクト生成ブロックで指定する例

(画像をクリックすると拡大表示されます。)

このケースの場合は、このプロパティに_を指定します。

オブジェクトの配列の場合は、以下のように指定します。

オブジェクトの配列をオブジェクト生成ブロックで指定する例

(画像をクリックすると拡大表示されます。)

このケースの場合は、このプロパティに_.locationsを指定します。

ブロックメモ このブロックに関するメモが記載できます。このブロックの処理に影響しません。
結果を格納する変数

実際に通った可能性の高い近辺の道路にスナップした移動経路が格納される変数を指定します。

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

キー 説明
origin_location

GPS位置情報が格納された変数」プロパティで指定されたGPSの位置情報(経緯度)です。

location

origin_locationを元に実際に通った可能性の高い近辺の道路にスナップした位置情報(経緯度)です。

place_id

locationのPlace IDです。

以下は、格納されたオブジェクトの配列の例です。

[
  {
    "origin_location": "35.710063,139.8107",
    "location": "35.70965947544001,139.81075307021823",
    "place_id": "ChIJB72_8taOGGARjtK3MYG6dSE"
  },
  {
    "origin_location": "35.658581,139.745433",
    "location": "35.658338046973036,139.74509427004406",
    "place_id": "ChIJlbPTnL2LGGARXcIOEuKva0c"
  }
]
移動経路のGoogleマップURLをログへ出力

移動経路のGoogleマップURLをログに出力するかどうかを指定します。

  • チェックボックスをオン:出力する(初期値)
  • チェックボックスをオフ:出力しない

使用例

ここでは、「移動経路のスナップを取得【アルファ版】」ブロックを使って、BigQuery上のGPS経緯度データから実際に通った可能性の高い近辺の道路にスナップした経緯度を求めるケースを取り上げます。

前提として、BigQuery上のGPS経緯度データは、以下のように定義されているものとします。

経緯度データ:
longitude latitude
139.745433 35.658581
139.8107 35.710063
スキーマ情報:
カラム名 タイプ モード
longitude FLOAT NULLABLE
latitude FLOAT NULLABLE
テーブル情報:
GCPプロジェクト名 my-project
データセット名 example
テーブル名 gps_location_list
データ概要:
カラム 内容
longitude 経度
latitude 緯度

「移動経路のスナップを取得【アルファ版】」ブロックを使用する場合は、「オブジェクトの配列形式」のデータを変数で入力する必要があります。

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

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

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

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

今回のケースでは、以下のクエリー文で「クエリーの実行」ブロックを実行すると、「移動経路のスナップを取得【アルファ版】」ブロックの入力に必要なデータ形式へ変換できます。

SELECT
  CONCAT(
    CAST(latitude AS STRING),
    ',',
    CAST(longitude AS STRING)
  ) AS location
FROM
  example.gps_location_list

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

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

例えば、以下のように「クエリーの実行」ブロックと「移動経路のスナップを取得【アルファ版】」ブロックをつなげると、BigQuery上の経緯度のデータを、簡単に住所に変換できます。

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

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

ということで、以下のように「移動経路のスナップを取得【アルファ版】」ブロックに「変数からテーブルへロード」ブロックを繋げると、経緯度から住所へ変換したデータをBigQueryテーブルに簡単に格納できます。

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

origin_location location place_id
35.658581,139.745433 35.658338046973036,139.74509427004406 ChIJlbPTnL2LGGARXcIOEuKva0c
35.710063,139.8107 35.70965947544001,139.81075307021823 ChIJB72_8taOGGARj9K3MYG6dSE

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