From ee947dc8159d986835d46aefe916c002ac60b3cb Mon Sep 17 00:00:00 2001 From: Sylvain Niles Date: Fri, 24 Jun 2011 01:38:44 -0700 Subject: [PATCH] added support for radius to get_nearby --- lib/simple_geo/client.rb | 6 +++++- lib/simple_geo/endpoint.rb | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/simple_geo/client.rb b/lib/simple_geo/client.rb index e166e30..258598a 100644 --- a/lib/simple_geo/client.rb +++ b/lib/simple_geo/client.rb @@ -97,6 +97,7 @@ def get_history(layer, id) end def get_nearby_records(layer, options) + puts options.inspect if options[:geohash] endpoint = Endpoint.nearby_geohash(layer, options.delete(:geohash)) elsif options[:ip] @@ -104,8 +105,11 @@ def get_nearby_records(layer, options) elsif options[:lat] && options[:lon] endpoint = Endpoint.nearby_coordinates(layer, options.delete(:lat), options.delete(:lon)) + elsif options[:lat] && options[:lon] && options[:rad] + endpoint = Endpoint.nearby_coordinates_rad(layer, + options.delete(:lat), options.delete(:lon), options.delete(:rad)) else - raise SimpleGeoError, "Either geohash or lat and lon is required" + raise SimpleGeoError, "Either geohash, lat/lon, or lat/lon/rad is required" end options = nil if options.empty? diff --git a/lib/simple_geo/endpoint.rb b/lib/simple_geo/endpoint.rb index bc19d9e..3393332 100644 --- a/lib/simple_geo/endpoint.rb +++ b/lib/simple_geo/endpoint.rb @@ -41,6 +41,10 @@ def nearby_coordinates(layer, lat, lon) endpoint_url "records/#{layer}/nearby/#{lat},#{lon}.json", '0.1' end + def nearby_coordinates_rad(layer, lat, lon, rad) + endpoint_url "records/#{layer}/nearby/#{lat},#{lon}.json?radius=#{rad}", '0.1' + end + def nearby_ip_address(layer, ip) endpoint_url "records/#{layer}/nearby/#{ip}.json", '0.1' end