更多的Google map on Rails plugins,以及Rails Gis Hacks.
睡前偶然看到這帖.
裡面寫非了蠻多在Rails上實做gmap的plugin.
除了Geokit+YM4R 還又其他 :
像acts_as_geocodable , actsaslocateable .
不過看一看還是geokit比較好,至於YM4R... 我還是想自己寫...
這裡有一本寫關於gmap實作的,偶然間看到的
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.這篇,就先這樣吧.
Rails的Find SQL語法在多變情況下.
前陣子寫內部簡單的Search Engine,面對SQL其實突然有點失措.
在Rails底下,sql通常是下指令如
Find, Find_by.
傳統的是 Obj.find(:all,:conditions=>["sql command",vara ,varb ,varc])
然而有時要做進階的判斷,依據狀況可能有不同的參數&Conditions,又不想單純的find_by_sql.
如何改變conditions指令呢?
fcon=[''] fcon[0]="a like ? and b like ? and c like ?" fcon << params[:a] fcon << params[:b] fcon << params[:c] fcon[0]="d like ? and e like ? and f like ?" fcon << params[:d] fcon << params[:e] fcon << params[:f] Obj.find(:all,:condition=>fcon)
如此一來就不用find_by_sql,又可以達成conditions的變化.
關於Rails的三兩事.
使用Rails開發專案也好一段時間. 自從上一個專案半完成之後.
緊接著學習Restful與轉換至jQuery.
教學就不多說,網路查一查應該很多.
只是對於Rails的開發速度,之所以快,現在看起來,除了語法本身的簡潔,以及一些特性(Ruby本身).
說穿了,Rails就像是一套輔助的開發工具,然後把很多Plugin聚在一起.
像ActiveRecord負責DB之類的處理. ActiveHelper負責視覺方面的輔助.. etc
雖然不能如此比較,但.. 與PHP相比,Rails就像是一個已經寫好很多功能的PHP,然後拿來修修改改的感覺.
只是Rails寫得比較好. 而之所以這麼有名,也歸功於行銷得力吧.
與Rails相處的半年,還算愉快.
對於初學者,Rails難的不是語法,而是觀念.
就像Restful,其實也沒什麼,就是觀念. 觀念通就會了.
而MVC架構,以及初次下指令所產生出來的一堆文件,也著實讓新手摸不清頭緒.
這半年,要感謝的,莫過於網路上的各位大神,沒有他們的文件,可能學習進度會慢更多.
也感謝前輩們的不吝指導包括CFC,JC,小B,ihower,YiRu....etc (未提及但想被刊出的請告知我. :p )
目前正努力開發第二個專案. 要寫些什麼技術性文章的話,著實不用.
因為技術還是入門階段,也就不要自曝其短了.
有機會,大家歡迎到 http://railsfun.tw
這是我比較常去的Rails討論區.
協同開發之-Git 與 Trac.
由於開始得與人協同開發,但對方並不黯程式語言,所以開始尋找一些較好的協同開發方式.
爬文一整天架設了Git與Trac.
卻發現雖然解決了協同平台,在版本上衝突的可能性,卻仍解決不了必須下指令這個窘境.
截至目前為止,Git最好地就是使用指令去操作.
雖然Mac上有GitX. 而Linux上使用到的是SmartGit.
但這個Git也只是面對版本上的協同,在多數的情況下,開發者本身仍是需要在自己的電腦上具備server(ex mongrel,passenger)
若另一方不會安裝or使用server(比如下指令 ruby script/server).
那麼協同開發也無能為力.
為此,決定幫共同開發者安裝ruby on rails 環境.
回到正題,在研究版本控制的方式,約略會爬出以下幾個重點 :
主要 : CVS , Subversion , Git . ( Open source )
其他 : Bitkeeper , Visual SourceSafe ( Commercial )
以時間排序, CVS為1992, Subversion為2002, Git 為近期新的狠角色.
若你使用RoR+Subversion. Vlad 或 Capistrano 可以搭配.
Vlad較為簡便快速,雖然兩個我都沒裝過.
而RoR+Git應該就是主流了.
關於Git的介紹網路非常多 :
如這裡
這裡
這裡
而原文資料就更多了.
可以參考 :
官網
Wiki
或搜尋 " introduce git " 或 "git "
Trac是一套便於視覺管理Git的好物.
由於Trac是用python開發,安裝之前需有python以及easy_install.
easy_install可到 這下載. 先 python -version你的版本. 再下載對應的egg
然後開console到該檔案的位置 sudo sh 檔名.egg
再 sudo easy_install Trac即可.
關於Trac 的安裝及調校請參考 : 我
以上. 筆記.

