Googleマップを利用する (4/8)
作成:2012-05-13 10:46
更新:2012-05-13 10:46
更新:2012-05-13 10:46
■Geoコーダーを利用する
Mapsで静止画イメージを取得するとき、StaticMapのsetCenterでは、経度緯度による位置の値だけでなく、住所や地名、著名な観光地や建物の名前などで設定することもできました。このように、地名や住所などの情報をもとに位置情報を取得することを「Geoコーディング」といいます。(反対に、位置情報から住所などを割り出すことを「リバースGeoコーディング」と呼んだりします)
Googleマップには、このGeoコーディングのための機能が組み込まれており、Google Apps Scriptからもそれを利用することができるようになっています。Geoコーディングされた情報を管理するものとして、Maps Servicesには「Geocoder」というクラスが用意されています。これは以下のようにしてオブジェクトを生成します。
・リージョンを設定する
・言語を設定する
・Geoコーディングする範囲を設定する
これらのメソッドは、例によってGeoCoderオブジェクト自身を返すので、そのまま続けて記述することができます。これらで基本設定を行い、それからGeoコーディングのためのメソッドを呼び出します。
・Geoコーディングする
・リバースGeoコーディングする
GeoコーディングとリバースGeoコーディングの両方のメソッドが用意されており、メソッドを呼び出すだけでどちらも簡単に実行できます。Geoコーディングの作業自体は、非常に簡単ですね。問題は、返される値です。
Googleのドキュメントを見ると、geocodeで返されるのはGeocdode、reverseGeocodeで返されるのはAddressとなっていますが、どちらも同じオブジェクトが返されるようです。このオブジェクトが問題なのです。
このオブジェクトには、非常に多くの情報が盛り込まれています。それらが構造的に組み込まれているのです。このため、必要な値を取り出すには、まずオブジェクトの構造を頭に入れておかなければいけません。面倒な事に、このオブジェクトに関する説明が、Google Apps Scriptのドキュメントにも見当たりません。これはGoogleマップのデータがまるごと返されているのですね。ですので、GoogleマップのAPIに関するドキュメントを調べないといけません。
Googleマップには、このGeoコーディングのための機能が組み込まれており、Google Apps Scriptからもそれを利用することができるようになっています。Geoコーディングされた情報を管理するものとして、Maps Servicesには「Geocoder」というクラスが用意されています。これは以下のようにしてオブジェクトを生成します。
変数 = Maps.newGetcoder();StaticMapと同様、これで取得されたオブジェクトはまっさらな状態で、何の設定もされていません。そこでこのGeoCoderオブジェクトのメソッドを呼び出して各種の設定を行います。
・リージョンを設定する
《Geocoder》.setRegion( リージョン名 );
・言語を設定する
《Geocoder》.setLanguage(言語名 );
・Geoコーディングする範囲を設定する
《Geocoder》.setBounds( 緯度1, 経度1, 緯度2, 経度2 );
これらのメソッドは、例によってGeoCoderオブジェクト自身を返すので、そのまま続けて記述することができます。これらで基本設定を行い、それからGeoコーディングのためのメソッドを呼び出します。
・Geoコーディングする
変数 = 《Geocoder》.geocode( 住所等のテキスト );
・リバースGeoコーディングする
変数 = 《Geocoder》.reverseGeocode( 緯度 , 経度 );
GeoコーディングとリバースGeoコーディングの両方のメソッドが用意されており、メソッドを呼び出すだけでどちらも簡単に実行できます。Geoコーディングの作業自体は、非常に簡単ですね。問題は、返される値です。
Googleのドキュメントを見ると、geocodeで返されるのはGeocdode、reverseGeocodeで返されるのはAddressとなっていますが、どちらも同じオブジェクトが返されるようです。このオブジェクトが問題なのです。
このオブジェクトには、非常に多くの情報が盛り込まれています。それらが構造的に組み込まれているのです。このため、必要な値を取り出すには、まずオブジェクトの構造を頭に入れておかなければいけません。面倒な事に、このオブジェクトに関する説明が、Google Apps Scriptのドキュメントにも見当たりません。これはGoogleマップのデータがまるごと返されているのですね。ですので、GoogleマップのAPIに関するドキュメントを調べないといけません。
https://developers.google.com/maps/documentation/geocoding/?hl=ja一応説明はありますが、見てもわけわからん的なところがあるので、その内容を整理しておくことにしましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る