module Coordconver::Degree::ClassMethods

Public Instance Methods

cal_degree(n) click to toggle source
# File lib/coordconver/degree.rb, line 34
def cal_degree(n)
  "#{num(n)}°#{num(min(n))}′#{num(sec(n))}″"
end
cal_undegree(n) click to toggle source

度数转坐标

# File lib/coordconver/degree.rb, line 50
def cal_undegree(n)
  (num(n) + get_min(n)/60 + get_sec(n)/3600).round(5)
end
degree(lng, lat) click to toggle source

坐标转度数

# File lib/coordconver/degree.rb, line 30
def degree(lng, lat)
  [cal_degree(lng),cal_degree(lat)]
end
dig(n) click to toggle source

取小数数位 Decimal digit

# File lib/coordconver/degree.rb, line 15
def dig(n)
  n.to_f-num(n)
end
get_min(n) click to toggle source

获取分

# File lib/coordconver/degree.rb, line 40
def get_min(n)
  n.split('°').last.to_f
end
get_sec(n) click to toggle source

获取秒

# File lib/coordconver/degree.rb, line 45
def get_sec(n)
  n.split('′').last.to_f
end
min(n) click to toggle source

计算分

# File lib/coordconver/degree.rb, line 20
def min(n)
  dig(n)*60
end
num(n) click to toggle source

取整数位

# File lib/coordconver/degree.rb, line 10
def num(n)
  n.to_i
end
sec(n) click to toggle source

计算秒

# File lib/coordconver/degree.rb, line 25
def sec(n)
  (min(n)-num(min(n)))*60
end
undegree(lng, lat) click to toggle source
# File lib/coordconver/degree.rb, line 54
def undegree(lng, lat)
  [cal_undegree(lng),cal_undegree(lat)]
end