Class: Coordinate
- Inherits:
-
Object
- Object
- Coordinate
- Defined in:
- lib/latitude/coordinate.rb
Constant Summary collapse
- COORDINATE_CHARS =
"0-9.\'\"°′″"
Instance Attribute Summary collapse
-
#latitude ⇒ Object
Returns the value of attribute latitude.
-
#longitude ⇒ Object
Returns the value of attribute longitude.
Instance Method Summary collapse
- #final_bearing_from(start_coordinate) ⇒ Object
- #great_circle_distance_to(final_coordinate) ⇒ Object
- #initial_bearing_to(final_coordinate) ⇒ Object
-
#initialize(params = {}) ⇒ Coordinate
constructor
A new instance of Coordinate.
- #valid? ⇒ Boolean
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
#latitude ⇒ Object
Returns the value of attribute latitude.
6 7 8 |
# File 'lib/latitude/coordinate.rb', line 6 def latitude @latitude end |
#longitude ⇒ Object
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
21 22 23 |
# File 'lib/latitude/coordinate.rb', line 21 def valid? latitude && longitude && (latitude.abs <= 90) && (longitude.abs <= 180) end |