module NoaaWeatherClient::Services::CalculateDistanceBetweenLatLon

Public Class Methods

convert_to_radian(*args) click to toggle source
# 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) click to toggle source
# 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