Class: Kdtree::Util
- Inherits:
-
Object
- Object
- Kdtree::Util
- Defined in:
- lib/kdtree/util.rb
Constant Summary collapse
- EARTH_MILES =
3959.0- EARTH_KILOMETERS =
6371.0
Class Method Summary collapse
- .bounding_box(lat, long, radius_distance, sphere_radius) ⇒ Object
- .bounding_box_kilometers(lat, long, distance_in_miles) ⇒ Object
-
.bounding_box_miles(lat, long, distance_in_miles) ⇒ Object
I pulled the algorithm for the bounding_box calculation from here: stackoverflow.com/questions/1689096/calculating-bounding-box-a-certain-distance-away-from-a-lat-long-coordinate-in-j.
- .degrees_to_radians(degrees) ⇒ Object
- .radians_to_degrees(radians) ⇒ Object
Class Method Details
.bounding_box(lat, long, radius_distance, sphere_radius) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/kdtree/util.rb', line 16 def self.bounding_box(lat, long, radius_distance, sphere_radius) lat_amount = radians_to_degrees(radius_distance / sphere_radius) lat1 = lat + lat_amount lat2 = lat - lat_amount long_amount = radians_to_degrees(radius_distance / sphere_radius / Math.cos(degrees_to_radians(lat))) long1 = long - long_amount long2 = long + long_amount Kdtree::LatitudeLongitudeRegion.new(lat1, long1, lat2, long2) end |
.bounding_box_kilometers(lat, long, distance_in_miles) ⇒ Object
12 13 14 |
# File 'lib/kdtree/util.rb', line 12 def self.bounding_box_kilometers(lat, long, distance_in_miles) bounding_box(lat, long, distance_in_miles, EARTH_MILES) end |
.bounding_box_miles(lat, long, distance_in_miles) ⇒ Object
I pulled the algorithm for the bounding_box calculation from here: stackoverflow.com/questions/1689096/calculating-bounding-box-a-certain-distance-away-from-a-lat-long-coordinate-in-j
8 9 10 |
# File 'lib/kdtree/util.rb', line 8 def self.bounding_box_miles(lat, long, distance_in_miles) bounding_box(lat, long, distance_in_miles, EARTH_MILES) end |
.degrees_to_radians(degrees) ⇒ Object
26 27 28 |
# File 'lib/kdtree/util.rb', line 26 def self.degrees_to_radians(degrees) degrees * 3.1416 / 180 end |
.radians_to_degrees(radians) ⇒ Object
30 31 32 |
# File 'lib/kdtree/util.rb', line 30 def self.radians_to_degrees(radians) radians * 180 / 3.1416 end |