From 4a2415737f793da56657dd601e95e474a073da22 Mon Sep 17 00:00:00 2001 From: Alex Reisner <alex@alexreisner.com> Date: Thu, 14 Oct 2010 23:13:51 -0400 Subject: [PATCH] Restore bounding box conditions. This fixes SQLite near methods and speeds up MySQL and Postgres. --- lib/geocoder.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/geocoder.rb b/lib/geocoder.rb index d2e4eeef..d1157aa6 100644 --- a/lib/geocoder.rb +++ b/lib/geocoder.rb @@ -110,12 +110,16 @@ module Geocoder conditions = \ ["#{lat_attr} BETWEEN ? AND ? AND #{lon_attr} BETWEEN ? AND ?"] + coordinate_bounds(latitude, longitude, radius) + if obj = options[:exclude] + conditions[0] << " AND id != ?" + conditions << obj.id + end { :group => columns.map{ |c| c.name}.join(','), :order => options[:order], :limit => options[:limit], :offset => options[:offset], - :conditions => (obj = options[:exclude]) ? ["id != ?", obj.id] : nil + :conditions => conditions } end -- GitLab