Module: Coordconver::Degree::ClassMethods
- Defined in:
- lib/coordconver/degree.rb
Instance Method Summary collapse
- #cal_degree(n) ⇒ Object
-
#cal_undegree(n) ⇒ Object
度数转坐标.
-
#degree(lng, lat) ⇒ Object
坐标转度数.
-
#dig(n) ⇒ Object
取小数数位 Decimal digit.
-
#get_min(n) ⇒ Object
获取分.
-
#get_sec(n) ⇒ Object
获取秒.
-
#min(n) ⇒ Object
计算分.
-
#num(n) ⇒ Object
取整数位.
-
#sec(n) ⇒ Object
计算秒.
- #undegree(lng, lat) ⇒ Object
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 |