Module: BB

Defined in:
lib/bounding_boxes/version.rb,
lib/bounding_boxes/distance.rb,
lib/bounding_boxes/bounding_box.rb,
lib/bounding_boxes/base_bounding_box.rb,
lib/bounding_boxes/point_bounding_box.rb,
lib/bounding_boxes/square_bounding_box.rb

Defined Under Namespace

Classes: BaseBoundingBox, BoundingBox, PointBoundingBox, SquareBoundingBox

Constant Summary collapse

VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.degrees_to_radians(number) ⇒ Object



23
24
25
# File 'lib/bounding_boxes/distance.rb', line 23

def self.degrees_to_radians(number)
  number * Math::PI / 180
end

.distance_kilometers(point1, point2) ⇒ Object



2
3
4
5
6
7
8
9
# File 'lib/bounding_boxes/distance.rb', line 2

def self.distance_kilometers(point1, point2)
  lat1 = BB::degrees_to_radians(point1.fetch(:latitude))
  long1 = BB::degrees_to_radians(point1.fetch(:longitude))
  lat2 = BB::degrees_to_radians(point2.fetch(:latitude))
  long2 = BB::degrees_to_radians(point2.fetch(:longitude))

  (Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(long1 - long2)) * 6371)
end

.distance_km(point1, point2) ⇒ Object



11
12
13
# File 'lib/bounding_boxes/distance.rb', line 11

def self.distance_km(point1, point2)
  BB.distance_kilometers(point1, point2)
end

.distance_mi(point1, point2) ⇒ Object



19
20
21
# File 'lib/bounding_boxes/distance.rb', line 19

def self.distance_mi(point1, point2)
  BB.distance_miles(point1, point2)
end

.distance_miles(point1, point2) ⇒ Object



15
16
17
# File 'lib/bounding_boxes/distance.rb', line 15

def self.distance_miles(point1, point2)
  BB.kilometers_to_miles(BB.distance_kilometers(point1, point2))
end

.kilometers_to_miles(number) ⇒ Object



31
32
33
# File 'lib/bounding_boxes/distance.rb', line 31

def self.kilometers_to_miles(number)
  number * 0.621371
end

.miles_to_kilometers(number) ⇒ Object



35
36
37
# File 'lib/bounding_boxes/distance.rb', line 35

def self.miles_to_kilometers(number)
  number * 1.60934
end

.radians_to_degrees(number) ⇒ Object



27
28
29
# File 'lib/bounding_boxes/distance.rb', line 27

def self.radians_to_degrees(number)
  number * 180 / Math::PI
end