Method: When::Coordinates.to_dms
- Defined in:
- lib/when_exe/coordinates.rb
.to_dms(src, dir, round = 6) ⇒ String
10進->60進変換
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/when_exe/coordinates.rb', line 76 def self.to_dms(src, dir, round=6) dir = (src >= 0) ? dir[0..0] : dir[1..1] deg, min = src.abs.divmod(1) min, sec = (60*min).divmod(1) sec = (60*10**round*sec).round fig = round + 2 round.times do div, mod = sec.divmod(10) if mod == 0 fig -= 1 sec = div else break end end (['N','S'].include?(dir) ? "%02d.%02d%0#{fig}d%s" : "%03d.%02d%0#{fig}d%s") % [deg, min, sec, dir] end |