【AlteryxTips】Google Maps APIを使ったストリートマップ取得の方法(Street View Static API)

AlteryxでのGoogle Maps APIのStreet View Static APIを使ったストリート画像の取得についてご紹介します

 

AlteryxはRestAPIを利用することが可能です。これを利用することでWEBから様々なデータを入手することが可能です。

今回は、Googleの提供するGoogle Maps Platformで利用可能なStreet View Static APIを使って、緯度経度や住所からストリートマップの画像データを取得してみたいと思います。

※Google Maps APIは有料です

 

Googleのサンプル

Street View Static APIはGoogle社のサンプル ですと以下のような形で呼び出すようになっています。

https://maps.googleapis.com/maps/api/streetview?size=400x400&location=47.5763831,-122.4211769&fov=80&heading=70&pitch=0&key=YOUR_API_KEY&signature=YOUR_SIGNATURE

このうち、「YOUR_API_KEY」という部分は、各自で入手したAPI呼び出し用のKeyを入力する必要があります(YOUR_SIGNATUREを持っていない場合は&signature以降削除でOKです)

※API KeyはGoogle社との契約が必要です(取得方法については、インターネットで検索願います)

※signatureは、Google Maps Platformプレミアムプランを契約している場合必要となります

 

上記のサンプルURLに取得したAPIキーを入れ、signatureオプション部分を削除すると、以下のような画像が取得できます。

Streetviewイメージ

ですので、Street View Static APIの戻り値は画像ということになります。

利用の際の流れは以上のような感じです。

 

基本的なオプションについて

Street View Static APIを利用する際の基本的なオプションをご紹介します。ストリートビューの画像を取得するためには、位置情報だけではなく、向きや取得画像サイズなどの情報が必要となります。

オプション名 内容 指定する値の例
size 取得画像のサイズ 400x400
location ストリート画像を取得したい場所 東京都港区三田3-13-16
fov 水平方向の視野角。デフォルト90度。最大120度。値が小さいとズームするイメージになる。 90
heading 北を0度とした時の方向(右回りで0~360) 90
pitch カメラの垂直方向の向き。デフォルトは水平で0度。プラスは上向きの角度、マイナスは下向きの角度(90度は真上) 0

※その他にもオプションは存在します

Alteryxで実現する

Alteryxで実現する場合ですが、ダウンロードツールを使ってデータを取得します。ステップとしては以下のような形になります。

  1. アクセス用のURLを生成する
  2. 生成したURLをダウンロードツールでGoogle Maps Platformに投げる
  3. 取得できた画像を取り出す

 

1.アクセス用のURLを生成する

ベースとなるURLは以下のようにしたいと思います。先程のGoogle社のサンプルをベースに、実際の値を置き換える部分は鉤括弧で囲ったパラメーター名としています(例:[YOUR_API_KEY]等)。

https://maps.googleapis.com/maps/api/streetview?size=[WIDTH]x[HEIGHT]&location=[LOCATION]&fov=[FOV]&heading=[HEADING]&pitch=[PITCH]&key=[YOUR_API_KEY]

 

今回のパラメータは以下のようにしました。

パラメータ名 内容
[WIDTH] 取得画像の横のサイズ
[HEIGHT] 取得画像の縦のサイズ
[LOCATION] 取得する画像の位置情報(住所もしくは緯度経度)
[FOV] 水平方向の視野角。デフォルト値の90で良いと思います
[HEADING] 取得画像の向き
[PITCH] カメラの垂直方向の向き。デフォルト値の0で良いと思います
[YOUR_API_KEY] API Key

上のURLに対して各パラメータを置換し、最終的なURLを作成する形となります。

 

例えば、これを以下のようなワークフローで最終的なURLを生成することができます。

URL作成

流れとしては、URLとパラメータをテキスト入力ツールでそれぞれ持たせ、検索置換ツールで置き換えるような形にしています。

※一気に複数の住所から取得するにはこのワークフローはあまり向いておりません。その場合はマクロ化することで取得が可能です。まずは機能を試す、という観点で作成しています。

 

2.生成したURLをダウンロードツールを使ってGoogle Maps Platformに投げる

ダウンロードツールの入力に、Step1で作成したURLをインプットするのが基本的な設定ですが、今回取得するデータは画像形式ですので、出力設定のところを「BLOB」にする必要があります。

ダウンロードツール設定

なお、ネットワークへのデータのアップロードになりますので、大量のデータを送信する場合は注意して頂ければと思います(スロットルツールなどが利用可能です)。

 

3.取得できた画像を取り出す

APIからはBLOB形式で取得する形になります。

Alteryxでは、BLOB形式のデータはレポート用に画像に変換したり、そのままファイルとして保存できたりします。

BLOB形式は、[開発者]カテゴリの「Blob変換」や「Blob出力」ツールで利用できる状態にできます。

 

ファイルに保存する(ダウンロードツール内)

方法として、ダウンロードツールのところで、「ファイルへ」という設定を行うと、そのままファイルに保存できます。

ファイル保存指定(ダウンロードツール)

この時、「フィールドからのファイル名」は、ファイル名を格納したフィールドを指定します(ファイル名のみ指定であればワークフローが保存してあるフォルダに格納されます)。推奨としてはフルパスでの指定となります。

 

ファイルに保存する(Blob出力)

ファイルに保存する方法として、Blob出力ツールを使う方法もあります。

WFとしては以下のような形となります。

Blob出力ツールを使った保存方法

ダウンロードツールでダウンロードしたフィールド「DownloadData」が今回Blob形式なので、これをBlob出力ツールの「Blobフィールド」に設定し、ファイル名等を指定します。

例えば、「FilePath」というフィールドにフルパスの保存先を格納しておけば、以下のような設定で保存可能です。

 

【Blob出力ツール設定】

設定項目 設定する内容
ファイル名 一旦保存先を指定します(オプションによって動きが変わりますが、「パス全体をフィールドに置き換える」オプションを選択すると、この項目の内容は無視されます)
以下によってファイル名を変更する パス全体をフィールドに置き換える
このフィールドの使用 FilePath
Blobフィールド DownloadData

 

保存先パスの与え方は状況によって変わってきますので、実際のWFに併せて頂ければと思います。

 

レポートで利用

取得した画像をPDF等でレポート形式に整形して保存する場合は、以下のようなワークフローとなります。

基本的な考え方として、取得できたデータ(DownloadDataフィールド)をBlob変換ツールを使ってレポートツールで扱える形式に変換する形となります。

 

【Blob変換ツール設定】

設定項目 設定する内容
変換モード Blobフィールドから変換する
Blobフィールド DownloadData
(変換オプション) PNG、GIFまたはJPEG Blobをレポートスニペットに変換する

 

レポートサンプル

レポートツールで扱える形式にしてしまえば、レイアウトツールなどでレイアウトし、最終的にはレンダリングツールでPDFファイル等に出力する形となります。

 

サンプルワークフローダウンロード

StreetViewStaticAPI_Sample

サンプルワークフローを利用するには、テキスト入力ツールのパラメータの部分にAPI Keyを入力する必要があります。API Keyの入手方法は、インターネットで検索願います。

 

注意事項

  • Google社の都合によりAPI仕様が変わることがありますので、ご了承ください(本記事は2020年7月頭時点での情報に基づいています)

 

参考

Alteryxの導入はぜひKCMEで!

セルフサービスデータ分析ツール「Alteryx」は4週間無償トライアルが可能です。

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Alteryxを用いた環境構築、開発、ヘルプデスク対応、ハンズオン、トレーニング、ワークフロー作成なども承りますので、お気軽にご相談ください。

おすすめの記事