2013-12-17 15 views
1

我有我自己的數據庫,其中包括:address,lat,long,name。 我擁有我想要的所有地址,而無需其座標。有沒有辦法找到座標以便將它們用作我活動地圖上的標記?查找我的數據庫地址欄的座標

換句話說,我想要批量的東西?!將我的地址解碼到我的數據庫中。

非常感謝您

編輯:

def index 
if params[:search].present? 
    @locations = Location.near(params[:search], 20, :order => :distance) 
else 
    @locations = Location.all 
    @locations.each do |l| 
    if l.latitude.nil? 
     new_location = "#{l.address}" 
     s = Geocoder.search(new_location) 
     l.latitude = s[0].latitude 
     l.longitude = s[0].longitude 
     l.save 
    end 
    end 
end 

這是我的,但它在數據庫中更新只是我的第一個地址。

回答

0

時退房gmaps4rails寶石在https://github.com/apneadiving/Google-Maps-for-Rails

這裏是我的模型我的應用程序之一使用:

acts_as_gmappable lat: 'latitude', lng: 'longitude', 
    process_geocoding: :geocode?, 
    address: :full_address, 
    msg: "Sorry, not even Google could figure out where that is" 

哦,這是我的geocode?方法:

def geocode? 
    latitude.blank? || longitude.blank? 
end 

所以當模型的latitude和/或longitude爲零時,gmaps4rails將自動執行查找並填充t他參賽。

+0

嗨多諾萬,這是我使用加地理編碼器。我的問題是,當我使用已經地址的新數據庫時,我想更新它們的座標。 – ThinkFast

+0

那個寶石已經有了這方面的規定,但是你必須運行一個手動任務來重建座標。在我的應用程序中,我只是將經度和緯度設置爲零,gmaps4rails重建位置。 – Donovan

+0

感謝您的幫助。我知道,當你通過你的索引創建一個新地址的時候,這將會起作用。但是如果你有一個300個地址的數據庫,而且沒有座標,這是怎麼回事? – ThinkFast