| ジオコーダー | |
|---|---|
| 原作者 | アレックス・ライスナー |
| 初回リリース | 2006年2月8日 (2006年2月8日) |
| 安定版リリース | 1.3.0 / 2016年1月30日 ( 2016年1月30日) |
| リポジトリ | github |
| 書かれた | ルビー |
| オペレーティング·システム | Linux、OS X、Windows |
| タイプ | Rubyライブラリ |
| ライセンス | MITライセンス |
| Webサイト | www.rubygeocoder.com |
Geocoder (Ruby) はRuby用のジオコーディングライブラリです。ジオコーディングは、ユーザーに位置情報を提示することでウェブページの利便性を向上させます。Rails と併用することで、 Geocoder はActiveRecordオブジェクトの距離計算に加え、座標から住所を検索したり、その逆を行ったりといったジオコーディング機能を追加します。[ 1 ]この機能は独自のデータベース関数に依存しないため、 MySQL、PostgreSQL、SQLiteなどのデータベースでは、あるエリア内の異なるジオコーディングオブジェクトをすぐに検索できます。[ 1 ]
ジオコーダはRuby 1.8.7、1.9.2、JRuby 1.5.3で完全にテストされています。[ 1 ]
ジオコーダはRails 3と互換性がありますが、Rails 2では機能が制限されています。[ 1 ]
Geocoder をインストールするための前提条件は、RubyとRubyGemsです。
Geocoder gem は次のコマンドでインストールできます。
gem ジオコーダをインストール
あるいは、Rails用のBundlerを使用している場合は、これをGemfileに追加することができます:[ 1 ]
gem「ジオコーダ」
バンドルインストール
Railsのプラグインとしても使えます: [ 1 ]
Rails プラグインのインストールgit://github.com/alexreisner/geocoder.git
オブジェクトで Geocoder を使用するには、プロジェクトを次のように設定する必要があります。
ActiveRecordオブジェクトでジオコーディングを使用するには、緯度と経度の2つの追加属性が必要です。[ 1 ]テーブルに保存する際は、これらの属性は緯度と経度と呼ばれますが、後述するように変更可能です。逆ジオコーディング(ユーザーの位置座標を実際の住所に変換すること)を使用する場合、モデルは住所を返すメソッドを実装する必要があります。[ 3 ]住所は単一の属性でも可能ですが、市、州、国などの複数の属性を組み合わせた文字列を返すメソッドを使用することもできます。[ 1 ]
Mongoidを使用する場合、モデルには住所、緯度、経度をフィールドとして追加するだけで済みます。また、geocoded_by:メソッドを呼び出す前に、モデルにGeocoder::Model::Mongoid をインクルードする必要があります。[ 1 ]
Railsモデルでは、ジオコーダにオブジェクトの完全なアドレスを返すメソッドを指示する必要があります。[ 1 ]
geocoded_by :full_street_address # IPアドレスも指定可能after_validation :geocode # 座標を自動取得逆ジオコーディングでは、ジオコーダはどのメソッドが緯度と経度の座標を返すかを認識する必要があります。:address オプションが指定されていない場合は、address 属性から自動的に住所を取得します。そうでない場合は、以下の例のように location 属性から住所を取得します。[ 1 ]
reverse_geocoded_by :latitude , :longitude , :address => :location after_validation : reverse_geocode # 住所の自動取得同じモデル上でフォワードジオコーディングとリバースジオコーディングが可能です。[ 1 ]
geocoded_by :address、reverse_geocoded_by :latitude 、:longitude、after_validation :geocode 、:reverse_geocodeモデル内で緯度と経度に異なる名前を使用するには、geocoded_byを実装する際に次の変更を行う必要がある: [ 1 ]
geocoded_by :address 、:latitude => :lat 、:longitude => :lonさらに、addressメソッドはGoogleマップの検索に使用される任意の文字列を返すことができます。[ 1 ]以下の例はいずれも機能します。
デフォルトでは、Geocoder はGoogleのジオコーディングAPIを使用して住所と座標を取得します。現在、以下の住所ジオコーディング サービスがサポートされています。
ジオコーダの機能を示す 例をいくつか示します[ 5 ] 。
ホテル.近く( "ノースカロライナ州ローリー" )ローリー近郊のホテルを検索します。
@restaurant . distance_to ( "エンパイアステートビル" )@restaurantからエンパイア ステート ビルまでの 距離を計算します。