Rails底下如何使用Geokit+Google Map
最近因為專案需要使用GoogleMap整合,所以查了一下相關的文章.
多數在Rails實作GoogleMap是使用 Geokit + YM4R
然而用了一下YM4R感覺綁太死了. 所以我便開始研究GmapAPI
要使用Gmap,除了要有一定的Javascript功力,還得有一個必備的 : Geokit.
由於Gmap是丟座標給他顯示查尋,所以所有地址都得先用Geokit算出座標.
在這裡有寫到關於Geokit的一些東西.
我則是直接使用Andre的Geokit
你可以直接下指令來安裝 :
依照官方說法 :
script/plugin install git://github.com/andre/geokit-rails.git config.gem "geokit" #請打在environment.rb內 rake gems:install
最好再裝個 : sudo gem install geokit
但是我安裝完成後,Irb底下可以使用,但Rails project內一直不能使用.
不管include 或require. 但是怎麼抓就是傳回nil的Hash.
若有跟我遇上一樣的狀況不妨試試把 config>initializer底下的geokit文件 砍了.
然後在environment.rb加上(或更改) : config.gem "andre-geokit", :lib => 'geokit', :source => "http://gems.github.com"
這樣應該就能運作.
運作正常後,就可以在需要的Controller內使用啦.
記得先 include Geokit::Geocoders
然後可以試試以下的Code :
#Controller下
@a=Geokit::Geocoders::YahooGeocoder.geocode '140 Market St, San Francisco, CA'
@b=Geokit::Geocoders::YahooGeocoder.geocode '789 Geary St, San Francisco, CA'
@distance=@a.distance_to(@b)
@heading=@a.heading_to(@b)
@midpoint=@a.midpoint_to(@b)
@endpoint=@midpoint.endpoint(90,10)
#View下 <=@a.ll> <=@b.ll> <=@distance> <=@heading> <=@midpoint> <=@endpoint>
(不曉得為什麼用< %% >會不行, 請先暫時自動加%上去. 感謝)
如果正常,那麼代表你的Geokit是正常.
如果要看更多範例可以到 Git Geokit 這裡是討論群
正常之後就可以把座標一個個丟給Google Map啦.
至於Google Map則是Javascript,會再開一篇文章討論Google Map.這篇,就先這樣吧.

