2009年3月25日 星期三

GeoKit on Rails

Geocoding with the Rails GeoKit Plugin
GeoKit official website
ym4r 提供了可以方便把google map 用的功能
而GeoKit 則是提供了許多 map application 會用到的功能, 例如 兩點之間的距離, 算某個範圍裡面的點等等

安裝
step1: 安裝plugin

step2: 在environment, initializer 的 block 裡加上

step3: 告訴rails 裝上這個gem

最後
在需要用到的controller 頂端 include GeoKit::Geocoders


把地址轉成經緯座標



自動轉經緯
如果你的table 裡有像lat, lng 的欄位, 在生成store object 時, 便會自動去算你設定為地址的欄位, 把對應的經緯填入



算點跟點之間的距離



找到某個範圍之內所有的點



從使用者ip判斷位置


## USING INCLUDES

You can use includes along with your distance finders:



However, ActiveRecord drops the calculated distance column when you use include. So, if you need to use the distance column, you‘ll have to re-calculate it post-query in Ruby:



In this case, you may want to just use the bounding box condition alone in your SQL (there‘s no use calculating the distance twice):

1 則留言:

Keane 提到...

Hi,想請教. 我依照你的步驟,在View內卻得到 : Provider: Street: City: State: Zip: Latitude: Longitude: Country: Success: false |

但在irb下卻是正常的.
想請教這是怎麼一回事呢?
感謝