Google Maps
住所を経緯度へ変換【ベータ版】
このブロックはベータ版です。機能改善や不具合などの情報提供は、MAGELLAN BLOCKSのお問い合わせ機能からお願いします。
概要
このブロックは、Google Maps PlatformのGeocoding APIを使って、住所から経緯度を取得します。
(画像をクリックすると拡大表示されます。)
warningセルフサービスプランの場合は、利用するGCPプロジェクトにおいて、Geocoding APIを有効化する必要があります。
warningこのブロックは、Google Maps PlatformのGeocoding APIを利用しているため、その利用量に応じた料金が別途発生します(従量課金制)。料金について詳しくは、Google Maps Platform料金表open_in_newのプレイス- Geocoding APIの項を参照願います。
MAGELLAN BLOCKSでは、利用する機能に合わせて、さまざまなAPIを利用しています。これらについても利用量に応じた料金が発生します。
- データ保存先(Google Cloud StorageやBigQueryなど)の操作:Google Cloud PlatformのAPI
- 機械学習の各機能:AI PlatformのAPI
プロパティ
| プロパティ名 | 説明 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ブロック名 |
編集パネルに配置した当該ブロックの表示名が変更できます。 ブロックリストパネル中のブロック名は変更されません。 |
|||||||||
| GCP APIキー |
このブロックで利用するGoogle Maps Platform APIに必要なGCPのAPIキーを指定します。 GCP APIキーは、次の手順で作成します。
|
|||||||||
| 住所が格納された変数 |
経緯度に変換したい住所が格納された変数を指定します。 変数値は、オブジェクトもしくはオブジェクトの配列で準備します。オブジェクトの形式は、以下の通りです。
{
"address":経緯度,
"任意のキー":任意の値
}
以下は、オブジェクトをオブジェクト生成ブロックで指定した例です。
(画像をクリックすると拡大表示されます。) このケースの場合は、このプロパティに_を指定します。 オブジェクトの配列の場合は、以下のように指定します。
(画像をクリックすると拡大表示されます。) このケースの場合は、このプロパティに_.locationsを指定します。 |
|||||||||
| 結果を格納する変数 |
住所を経緯度へ変換した結果が格納される変数を指定します。 この変数には、以下に示すキーを含んだオブジェクトの配列が格納されます。
info_outline 「住所が格納された変数」プロパティで任意のキーを指定した場合は、そのキーと値のペアも格納されます。 以下は、格納されたオブジェクトの配列の例です。
[
{
"address": "日本、〒131-0045東京都墨田区押上1丁目1−2",
"origin_address": "東京スカイツリー",
"location": "35.7100627,139.8107004",
"place_id": "ChIJ35ov0dCOGGARKvdDH7NPHX0"
},
{
"address": "日本、〒810-0021福岡県福岡市中央区今泉1丁目19−22",
"origin_address": "福岡県福岡市中央区今泉1丁目19番22号",
"location": "33.5862291,130.3977837",
"place_id": "ChIJnQgIVISRQTURdPXRme2PuI4"
}
]
info_outline「"origin_address"」は、「住所が格納された変数」プロパティで指定された任意のキーです。 |
|||||||||
| ブロックメモ | このブロックに関するメモが記載できます。このブロックの処理に影響しません。 | |||||||||
| 住所の表記言語 |
変換された経緯度に対する住所の表記言語を選択します。 info_outline サポートしている言語のリストは、Google Maps Platform FAQを参照してください。 |
|||||||||
| 経緯度のGoogleマップURLをログへ出力 |
変換された経緯度のGoogleマップURLをログに出力するかどうかを指定します。
|
使用例
ここでは、「住所を経緯度へ変換【ベータ版】」ブロックを使って、BigQuery上の住所データから経緯度を求めるケースを取り上げます。
前提として、BigQuery上の住所データは、以下のように定義されているものとします。
| id | address |
|---|---|
| P001 | 東京スカイツリー |
| P002 | 福岡県福岡市中央区今泉1丁目19番22号 |
| カラム名 | タイプ | モード |
|---|---|---|
| id | STRING | NULLABLE |
| address | STRING | NULLABLE |
| GCPプロジェクト名 | my-project |
|---|---|
| データセット名 | example |
| テーブル名 | address_list |
| カラム | 内容 |
|---|---|
| id | 住所やランドマークを特定するユニークな文字列 |
| address | 住所やランドマーク |
「住所を経緯度へ変換【ベータ版】」ブロックを使用する場合は、「オブジェクトの配列形式」のデータを変数で入力する必要があります。
「オブジェクトの配列形式」とは、下図のような配列の各要素がオブジェクトであるデータ形式のことです。
しかし、今回のサンプルではBigQuery上のデータの形式が異なるため、何らかの方法でオブジェクトの配列形式に変換したデータを変数に格納する必要があります。
これには、「クエリーの実行」ブロックが役立ちます。なぜなら、「クエリーの実行」ブロックのクエリー結果は、オブジェクトの配列形式で変数に格納できるからです。
オブジェクトの配列形式のデータを変数で入力する必要があるブロックは、「クエリーの実行」ブロックと組み合わせて使うと便利です。
今回のケースでは、以下のクエリー文で「クエリーの実行」ブロックを実行すると、「住所を経緯度へ変換【ベータ版】」ブロックの入力に必要なデータ形式へ変換できます。
SELECT address, id FROM example.address_list
上記クエリー文で、「クエリーの実行」ブロックを実行すると、下図のようなオブジェクトの配列形式のデータが、変数へ格納されます。
このように、「クエリーの実行」を使うと、BigQuery上のデータを簡単に変換・加工できます。
例えば、以下のように「クエリーの実行」ブロックと「住所を経緯度へ変換【ベータ版】」ブロックをつなげると、BigQuery上の経緯度のデータを、簡単に住所に変換できます。
結果は、下図のようなオブジェクトの配列形式で変数に格納されます。
変数に格納されるデータの形式は、オブジェクトの配列であるため、この形式で入力可能なブロックと組み合わせると便利です。例えば、「変数からテーブルへロード」ブロックは、オブジェクトの配列形式のデータを変数で入力し、BigQueryテーブルにそのデータを格納してくれます。
ということで、以下のように「住所を経緯度へ変換【ベータ版】」ブロックに「変数からテーブルへロード」ブロックを繋げると、住所から経緯度へ変換したデータをBigQueryテーブルへ簡単に格納できます。
このフローを実行すると、以下のような形でBigQueryテーブルにデータが格納されます。
| address | id | location | place_id |
|---|---|---|---|
| 日本、〒131-0045 東京都墨田区押上1丁目1−2 | P001 | 35.7100627,139.8107004 | ChIJ35ov0dCOGGARKvdDH7NPHX0 |
| 日本、〒810-0041 福岡県福岡市中央区今泉1丁目19−19−22 | P002 | 33.58622890000001,130.3978337 | ChIJwwR-VISRQTURfWBPue_uuoE |
addressカラムの住所は、プロパティの解説どおり元の住所とは異なります。元の住所とそれに対する住所を突き合わせる場合は、元の住所を特定するカラムと付き合わせる必要があります。この例では、idカラムがそれにあたります。

