lib/geo_units.rb in geo_units-0.2.3 vs lib/geo_units.rb in geo_units-0.2.4

- old
+ new

@@ -20,44 +20,67 @@ module GeoUnits autoload :Converter, 'geo_units/converter' autoload :DmsConverter, 'geo_units/dms_converter' autoload :NumericExt, 'geo_units/numeric_ext' - EARTH_RADIUS = { + def earth_radius_map + { :miles => 3963.1676, :kilometers => 6378.135, :meters => 6378135, :feet => 20925639.8 - } + } + end - EARTH_MAJOR_AXIS_RADIUS = { + def earth_major_axis_radius_map + { :miles => 3963.19059, :kilometers => 6378.137, :meters => 6378137, :feet => 20925646.36 - } + } + end - EARTH_MINOR_AXIS_RADIUS = { + def earth_minor_axis_radius_map + { :kilometers => 6356.7523142, :miles => 3949.90276, :meters => 6356752.3142, :feet => 20855486.627 - } + } + end - RADIAN_PER_DEGREE = Math::PI / 180.0 + def radians_per_degree + Math::PI / 180.0 + end # Haversine Formula # Adapted from Geokit Gem # https://github.com/andre/geokit-gem.git # By: Andre Lewis - PI_DIV_RAD = 0.0174 + def pi_div_rad + 0.0174 + end - KMS_PER_MILE = 1.609 - METERS_PER_FEET = 3.2808399 + def kms_per_mile + 1.609 + end + + def meters_per_feet + 3.2808399 + end - MILES_PER_LATITUDE_DEGREE = 69.1 - KMS_PER_LATITUDE_DEGREE = MILES_PER_LATITUDE_DEGREE * KMS_PER_MILE - LATITUDE_DEGREES = EARTH_RADIUS[:miles] / MILES_PER_LATITUDE_DEGREE + def miles_per_latitude_degree + 69.1 + end + + def kms_per_latitude_degree + miles_per_latitude_degree * kms_per_mile + end + + def latitude_degrees + earth_radius_map[:miles] / miles_per_latitude_degree + end module ClassMethods def key unit = :km unit = unit.to_sym methods.grep(/_unit$/).each do |meth|