Module: Coordconver::Degree::ClassMethods

Defined in:
lib/coordconver/degree.rb

Instance Method Summary collapse

Instance Method Details

#cal_degree(n) ⇒ Object



34
35
36
# File 'lib/coordconver/degree.rb', line 34

def cal_degree(n)
  "#{num(n)}°#{num(min(n))}#{num(sec(n))}"
end

#cal_undegree(n) ⇒ Object

度数转坐标



50
51
52
# 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) ⇒ Object

坐标转度数



30
31
32
# File 'lib/coordconver/degree.rb', line 30

def degree(lng, lat)
  [cal_degree(lng),cal_degree(lat)]
end

#dig(n) ⇒ Object

取小数数位 Decimal digit



15
16
17
# File 'lib/coordconver/degree.rb', line 15

def dig(n)
  n.to_f-num(n)
end

#get_min(n) ⇒ Object

获取分



40
41
42
# File 'lib/coordconver/degree.rb', line 40

def get_min(n)
  n.split('°').last.to_f
end

#get_sec(n) ⇒ Object

获取秒



45
46
47
# File 'lib/coordconver/degree.rb', line 45

def get_sec(n)
  n.split('').last.to_f
end

#min(n) ⇒ Object

计算分



20
21
22
# File 'lib/coordconver/degree.rb', line 20

def min(n)
  dig(n)*60
end

#num(n) ⇒ Object

取整数位



10
11
12
# File 'lib/coordconver/degree.rb', line 10

def num(n)
  n.to_i
end

#sec(n) ⇒ Object

计算秒



25
26
27
# File 'lib/coordconver/degree.rb', line 25

def sec(n)
  (min(n)-num(min(n)))*60
end

#undegree(lng, lat) ⇒ Object



54
55
56
# File 'lib/coordconver/degree.rb', line 54

def undegree(lng, lat)
  [cal_undegree(lng),cal_undegree(lat)]
end