diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb index a10bc2cae016538d0cf5124cd4ae9819261c7117..3d96012c8fc38c6e4fcdf0897c2e6c61edd88c0f 100644 --- a/lib/geocoder/stores/active_record.rb +++ b/lib/geocoder/stores/active_record.rb @@ -125,19 +125,19 @@ module Geocoder::Store when :linear "CAST(" + "DEGREES(ATAN2( " + - "RADIANS(#{lon_attr} - #{longitude}), " + - "RADIANS(#{lat_attr} - #{latitude})" + + "RADIANS(#{full_column_name(lon_attr)} - #{longitude}), " + + "RADIANS(#{full_column_name(lat_attr)} - #{latitude})" + ")) + 360 " + "AS decimal) % 360" when :spherical "CAST(" + "DEGREES(ATAN2( " + - "SIN(RADIANS(#{lon_attr} - #{longitude})) * " + - "COS(RADIANS(#{lat_attr})), (" + - "COS(RADIANS(#{latitude})) * SIN(RADIANS(#{lat_attr}))" + + "SIN(RADIANS(#{full_column_name(lon_attr)} - #{longitude})) * " + + "COS(RADIANS(#{full_column_name(lat_attr)})), (" + + "COS(RADIANS(#{latitude})) * SIN(RADIANS(#{full_column_name(lat_attr)}))" + ") - (" + - "SIN(RADIANS(#{latitude})) * COS(RADIANS(#{lat_attr})) * " + - "COS(RADIANS(#{lon_attr} - #{longitude}))" + + "SIN(RADIANS(#{latitude})) * COS(RADIANS(#{full_column_name(lat_attr)})) * " + + "COS(RADIANS(#{full_column_name(lon_attr)} - #{longitude}))" + ")" + ")) + 360 " + "AS decimal) % 360"