From d6972da84f8cb248748bedd676a03e688ab279bb Mon Sep 17 00:00:00 2001 From: Miles Gould Date: Thu, 5 Sep 2013 13:10:47 +0100 Subject: [PATCH] Speed up geocoding/deal better with slow geocoding. - set limit=1 - set timeout=10s --- app/controllers/places_controller.rb | 2 +- app/models/member.rb | 7 +++++++ config/initializers/geocoder.rb | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/places_controller.rb b/app/controllers/places_controller.rb index 603df45e8..3603dda3b 100644 --- a/app/controllers/places_controller.rb +++ b/app/controllers/places_controller.rb @@ -25,7 +25,7 @@ class PlacesController < ApplicationController end query = Geocoder::Query.new( - @place, :distance => @distance, :units => @units + @place, :distance => @distance, :units => @units, :params => {limit: 1} ) location = Geocoder.search(query) if location && location[0] && location[0].coordinates diff --git a/app/models/member.rb b/app/models/member.rb index ccd8c29eb..1aa8b43d4 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -206,6 +206,13 @@ class Member < ActiveRecord::Base private + def geocode + unless self.location.blank? + self.latitude, self.longitude = + Geocoder.coordinates(location, params: {limit: 1}) + end + end + def empty_unwanted_geocodes if self.location.blank? self.latitude = nil diff --git a/config/initializers/geocoder.rb b/config/initializers/geocoder.rb index c26989102..2f99c783c 100644 --- a/config/initializers/geocoder.rb +++ b/config/initializers/geocoder.rb @@ -1,5 +1,6 @@ Geocoder.configure( :units => :km, + :timeout => 10, :http_headers => { "User-Agent" => "#{Growstuff::Application.config.user_agent} #{Growstuff::Application.config.user_agent_email}",