Google Maps
経緯度を住所へ変換【アルファ版】
MAGELLAN BLOCKSのお問い合わせ機能からお願いします。
このブロックはアルファ版です。利用にあたっては利用申請が必要です。提供している機能は完全でない場合があり、下位互換性のない変更を加える可能性もあります。このため、テスト環境での使用に適しています。利用申請/機能改善の要望/不具合の報告などは、概要
このブロックは、Google Maps PlatformのGeocoding APIを使って、経緯度から住所を取得します。
(画像をクリックすると拡大表示されます。)
セルフサービスプランの場合は、利用するGCPプロジェクトにおいて、Geocoding APIを有効化する必要があります。
Google Maps Platform料金表のプレイス- Geocoding APIの項を参照願います。
このブロックは、Google Maps Platformの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キーは、次の手順で作成します。
|
|||||||||
経緯度が格納された変数 |
住所に変換したい経緯度が格納された変数を指定します。 変数値は、オブジェクトもしくはオブジェクトの配列で準備します。オブジェクトの形式は、以下の通りです。 { "location":経緯度, "任意のキー":任意の値 }
以下は、オブジェクトをオブジェクト生成ブロックで指定した例です。 (画像をクリックすると拡大表示されます。) このケースの場合は、このプロパティに_を指定します。 オブジェクトの配列の場合は、以下のように指定します。 (画像をクリックすると拡大表示されます。) このケースの場合は、このプロパティに_.locationsを指定します。 |
|||||||||
結果を格納する変数 |
経緯度を住所へ変換した結果が格納される変数を指定します。 この変数には、以下に示すキーを含んだオブジェクトの配列が格納されます。
「経緯度が格納された変数」プロパティで任意のキーを指定した場合は、そのキーと値のペアも格納されます。 以下は、格納されたオブジェクトの配列の例です。 [ { "location": "35.7100627,139.8107004", "origin_location": "35.710063,139.8107", "address": "日本、〒131-0045東京都墨田区押上1丁目1−2", "place_id": "ChIJ35ov0dCOGGARKvdDH7NPHX0" }, { "location": "35.6585805,139.7454329", "origin_location": "35.658581,139.745433", "address": "日本、〒105-0011東京都港区芝公園4丁目2−8", "place_id": "ChIJCewJkL2LGGAR3Qmk0vCTGkg" } ] 「"origin_location"」は、「経緯度が格納された変数」プロパティで指定された任意のキーです。 |
|||||||||
ブロックメモ | このブロックに関するメモが記載できます。このブロックの処理に影響しません。 | |||||||||
住所の表記言語 |
変換された住所の表記言語を選択します。 Google Maps Platform FAQを参照してください。 サポートしている言語のリストは、 |
|||||||||
住所のGoogleマップURLをログへ出力 |
変換された住所のGoogleマップURLをログに出力するかどうかを指定します。
|
使用例
ここでは、「経緯度を住所へ変換【アルファ版】」ブロックを使って、BigQuery上の経緯度データから住所を求めるケースを取り上げます。
前提として、BigQuery上の経緯度データは、以下のように定義されているものとします。
id | longitude | latitude |
---|---|---|
P001 | 135.785046 | 34.994856 |
P002 | 139.796655 | 35.714765 |
P003 | 135.772672 | 34.96714 |
P004 | 135.729243 | 35.03937 |
P005 | 139.745433 | 35.658581 |
P006 | 135.432338 | 34.665442 |
P007 | 139.8107 | 35.710063 |
P008 | 139.646091 | 35.443446 |
P009 | 139.705177 | 35.671039 |
P010 | 135.501297 | 34.668723 |
カラム名 | タイプ | モード |
---|---|---|
id | STRING | NULLABLE |
longitude | FLOAT | NULLABLE |
latitude | FLOAT | NULLABLE |
GCPプロジェクト名 | my-project |
---|---|
データセット名 | example |
テーブル名 | geocode |
カラム | 内容 |
---|---|
id | 経緯度を特定するユニークな文字列 |
longitude | 経度 |
latitude | 緯度 |
「経緯度を住所へ変換【アルファ版】」ブロックを使用する場合は、「オブジェクトの配列形式」のデータを変数で入力する必要があります。
「オブジェクトの配列形式」とは、下図のような配列の各要素がオブジェクトであるデータ形式のことです。
しかし、今回のサンプルではBigQuery上のデータの形式が異なるため、何らかの方法でオブジェクトの配列形式に変換したデータを変数に格納する必要があります。
これには、「クエリーの実行」ブロックが役立ちます。なぜなら、「クエリーの実行」ブロックのクエリー結果は、オブジェクトの配列形式で変数に格納できるからです。
オブジェクトの配列形式のデータを変数で入力する必要があるブロックは、「クエリーの実行」ブロックと組み合わせて使うと便利です。
今回のケースでは、以下のクエリー文で「クエリーの実行」ブロックを実行すると、「経緯度を住所へ変換【アルファ版】」ブロックの入力に必要なデータ形式へ変換できます。
SELECT CONCAT( CAST(latitude AS STRING), ',', CAST(longitude AS STRING) ) AS location, id FROM example.geocode LIMIT 10
上記クエリー文で、「クエリーの実行」ブロックを実行すると、下図のようなオブジェクトの配列形式のデータが、変数へ格納されます。
このように、「クエリーの実行」を使うと、BigQuery上のデータを簡単に変換・加工できます。
例えば、以下のように「クエリーの実行」ブロックと「経緯度を住所へ変換【アルファ版】」ブロックをつなげると、BigQuery上の経緯度のデータを、簡単に住所に変換できます。
結果は、下図のようなオブジェクトの配列形式で変数に格納されます。
変数に格納されるデータの形式は、オブジェクトの配列であるため、この形式で入力可能なブロックと組み合わせると便利です。例えば、「変数からテーブルへロード」ブロックは、オブジェクトの配列形式のデータを変数で入力し、BigQueryテーブルにそのデータを格納してくれます。
ということで、以下のように「経緯度を住所へ変換【アルファ版】」ブロックに「変数からテーブルへロード」ブロックを繋げると、経緯度から住所へ変換したデータをBigQueryテーブルに簡単に格納できます。
このフローを実行すると、以下のような形でBigQueryテーブルにデータが格納されます。
location | id | address | place_id |
---|---|---|---|
34.9671467,135.7726585 | P003 | 日本、〒612-0882 京都府京都市伏見区深草藪之内町68 | ChIJN6vyEBUPAWAR1xQ-YkrTp7g |
35.7100543,139.8107062 | P007 | 日本、〒131-0045 東京都墨田区押上1丁目1−2 | ChIJh2QCedmPGGARspj3pCce5Y8 |
35.6585805,139.7454329 | P005 | 日本、〒105-0011 東京都港区芝公園4丁目2−8 | ChIJCewJkL2LGGAR3Qmk0vCTGkg |
35.03937,135.7292431 | P004 | 日本、〒603-8361 京都府京都市北区金閣寺町1 | ChIJvUbrwCCoAWARX2QiHCsn5A4 |
34.665442,135.4323382 | P006 | 日本、〒554-0031 大阪府大阪市此花区桜島2丁目1−33 | ChIJXeLVg9DgAGARqlIyMCX-BTY |
35.7147651,139.7966553 | P002 | 日本、〒111-0032 東京都台東区浅草2丁目3−1 | ChIJ8T1GpMGOGGARDYGSgpooDWw |
35.4435257,139.6461358 | P008 | 日本、〒231-0023 神奈川県横浜市中区山下町164 | ChIJKSlvaeNcGGARvcYKNdsOlxc |
34.9948561,135.7850463 | P001 | 日本、〒605-0862 京都府京都市東山区清水1丁目294 | ChIJB_vchdMIAWARujTEUIZlr2I |
35.6710116,139.705081 | P009 | 日本、〒150-0001 東京都渋谷区神宮前1丁目16−9 | ChIJdXrg0GuNGGARmpOSM-6yWJA |
34.6688054,135.5011412 | P010 | 日本、〒542-0077 大阪府大阪市中央区道頓堀1丁目10−2 | ChIJg-2nhBPnAGARM7VZEKMAmaA |
locationカラムの経緯度は、プロパティの解説どおり元の経緯度とは異なります。元の経緯度とそれに対する住所を突き合わせる場合は、元の経緯度を特定するカラムと付き合わせる必要があります。この例では、idカラムがそれにあたります。