Module: NoaaWeatherClient::Services::CalculateDistanceBetweenLatLon
- Extended by:
- Math
- Defined in:
- lib/noaa_weather_client/services/calculate_distance_between_lat_lon.rb
Class Method Summary collapse
Class Method Details
.convert_to_radian(*args) ⇒ Object
15 16 17 |
# File 'lib/noaa_weather_client/services/calculate_distance_between_lat_lon.rb', line 15 def self.convert_to_radian(*args) args.map { |arg| arg / 180 * Math::PI } end |
.get_distance(lat1, lon1, lat2, lon2) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/noaa_weather_client/services/calculate_distance_between_lat_lon.rb', line 6 def self.get_distance(lat1, lon1, lat2, lon2) lat1, lon1, lat2, lon2 = convert_to_radian(lat1, lon1, lat2, lon2) radius = 6371 #km s = sin(lat1) * sin(lat2) c = cos(lat1) * cos(lat2) * cos(lon2-lon1) acos(s + c) * radius; end |