Google Earth(TM) 地図サービスのオススメスポット・Wiki更新状況・おもしろい情報の紹介などを書き綴っていきます。

金曜日, 2月 08, 2008

HerokuとGeoKit その2

前回の続きです。  GeoKitプラグインをインストールするところから再開です。まずはリンク先からGeoKitをダウンロードしてきます。ダウンロードしたGeoKitはzip圧縮してありますが、tar.gzでないと受け付けない旨が書いてあったので一度解凍してtar.gzで圧縮しなおします。  これで準備完了ですので、続いてインストールしてみましょう。  左のフォルダ群にあるvendorを開くと、「Gems & Plugins >>」という項目がありますので、こちらを選択します。  

Heroku GeoKit その1

すると、プラグインファイルを選択する画面が出てきますので、先ほど準備したファイルを選択してアップロードします。

Heroku GeoKit その2

アップロードが完了すれば、GeoKitがインストール出来ている事が表示されます。確認してください。

Heroku GeoKit その3

インストールされたGeoKitを利用できるようにします。「app」→「models」からplace.rbを開きます。そして、Placeクラスに次の一文を挿入します。

acts_as_mappable :lng_column_name => 'longitude', :lat_column_name => 'latitude'

これでlongitudeを緯度、latitudeを経度として取り扱ってくれるようになります。

Heroku GeoKit その5

次にcontrollerを変更します。トップページに表示されるリストを神戸空港の緯度・経度から近い順に並べ替えて表示させるという設定をしてみます。  「app」→「controllers」からplaces_controller.rbを選択します。そして、PlacesControllerクラスのindexメソッドの冒頭を次のように書き換えます。 @places = Place.find(:all, :origin => [34.638857,135.22728], :order => "distance ASC")

Heroku GeoKit その4

これで作業は完了です。34.638857,135.22728という座標を中心に距離順表示されるようになったと思います。下記リンク先で適当に座標を入力して試してみてください。 http://geokitsample.herokugarden.com/places/  GeoKitは他にもジオコーディングやIPアドレスに対応していたり、多機能なプラグインのようです(やったこと無いので分かりませんが。)。詳細はGeoKitのhome等を確認してください。  実際には入力数値を緯度・経度に即したものになっているかチェックする等、やることが他にもありますが、今回は動作確認ということで。。。

追記(09.3.22)』 GoogleMapsを表示したい場合の参考リンクをコメント欄にて教えていただきました。 興味のある方はコメントをご覧ください。

4 コメント:

tenfu2tea さんのコメント...

参考になりました。
デモサイトと地図が見えなくなっています。
旧 heroku.com は herokugarden.com にURL変更になっています。また、URL変更のため、google maps APIが無効になっているためでしょう。もし余力がありましたら修正頂くとありがたいです。

Takashi.U さんのコメント...

tenfu2tea様

情報提供ありがとうございます。アドレスは変更しておきました。

それと、大変申し訳ありませんが、このサンプルでは僕が不精なものでマップを使用していません。申し訳ないです。いずれはRailsとGeoRubyネタでもやってみたいとは思っているのですが…。

tenfu2tea さんのコメント...

上のコメントでは geokit plugin の機能を知らない段階で「マップが表示されない」などと書いてしまい申し訳ありません。

google map 2の表示は gmap-on-rails プラグインを使って簡単にできました。 herokugardenでも Plugin メニューの Install from URLに、
http://gmaps-on-rails.googlecode.com
を入力すれば、インストール完了です。

↓を参考にしました。
http://www.banwanko.net/etc/?GoogleMaps+%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3

Takashi.U さんのコメント...

tenfu2tea様

またまた情報提供ありがとうございます。

GoogleMapsを利用される場合に役立つと思いますので、本文の方にもコメントがあった旨をアナウンスしておきます。

何かあればまた情報提供いただければ幸いです。