Class: Coordinate

Inherits:
Object
  • Object
show all
Defined in:
lib/latitude/coordinate.rb

Constant Summary collapse

COORDINATE_CHARS =
"0-9.\'\"°′″"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Coordinate

Returns a new instance of Coordinate.



8
9
10
11
# File 'lib/latitude/coordinate.rb', line 8

def initialize(params = {})
  self.latitude  = params[:latitude]
  self.longitude = params[:longitude]
end

Instance Attribute Details

#latitudeObject

Returns the value of attribute latitude.



6
7
8
# File 'lib/latitude/coordinate.rb', line 6

def latitude
  @latitude
end

#longitudeObject

Returns the value of attribute longitude.



6
7
8
# File 'lib/latitude/coordinate.rb', line 6

def longitude
  @longitude
end

Instance Method Details

#final_bearing_from(start_coordinate) ⇒ Object



37
38
39
40
41
# File 'lib/latitude/coordinate.rb', line 37

def final_bearing_from(start_coordinate)
  Vincenty.final_bearing(start_coordinate.latitude,
                         start_coordinate.longitude,
                         latitude, longitude)
end

#great_circle_distance_to(final_coordinate) ⇒ Object



25
26
27
28
29
# File 'lib/latitude/coordinate.rb', line 25

def great_circle_distance_to(final_coordinate)
  Vincenty.great_circle_distance(latitude, longitude,
                                 final_coordinate.latitude,
                                 final_coordinate.longitude)
end

#initial_bearing_to(final_coordinate) ⇒ Object



31
32
33
34
35
# File 'lib/latitude/coordinate.rb', line 31

def initial_bearing_to(final_coordinate)
  Vincenty.initial_bearing(latitude, longitude,
                           final_coordinate.latitude,
                           final_coordinate.longitude)
end

#valid?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/latitude/coordinate.rb', line 21

def valid?
  latitude && longitude && (latitude.abs <= 90) && (longitude.abs <= 180)
end