Sha256: 5e0581c3610d3be2f8843461dbab35bbee52bd3521c536e2d33d4ab2eb1d1631

Contents?: true

Size: 876 Bytes

Versions: 3

Compression:

Stored size: 876 Bytes

Contents

class GeoDistance
  module Conversion
    module Radians
      def to_radians
        cloned = self.dup               
        cloned.distance = in_radians
        cloned.unit = :radians
        cloned
      end        

      def to_radians! lat = 0
        @distance = in_radians(lat)
        @unit = :radians
      end        

      def radians_conversion_factor 
        unit.radians_ratio
      end

      # calculate the distance in radians for the given latitude
      def in_radians lat = 0
        (unit != :radians) ? distance.to_f / earth_factor(lat) : distance # radians_conversion_factor
      end

      protected
      
      def earth_factor u = nil, lat = 0
        (GeoDistance.earth_radius[u ||= unit] / 180) * latitude_factor(lat)
      end      
      
      def latitude_factor latitude = 0
        90 / (90 - latitude)
      end      
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
geo-distance-0.2.2 lib/geo-distance/conversion/radians.rb
geo-distance-0.2.1 lib/geo-distance/conversion/radians.rb
geo-distance-0.2.0 lib/geo-distance/conversion/radians.rb