iRSSの日記

はてなダイアリーiRSSの日記の続き

時分秒表記の緯度経度を、度に変換する

rubyコードのサンプル

  def dms2tyo(dms)
    a = dms.split(".")
    return self.round(((a[0].to_f*3600 + a[1].to_f*60 + "#{a[2]}.#{a[3]}".to_f)/3600),10)
  end

dms2tyo("139.42.20.28") を呼び出すと 139.7056333333が戻ります。
dms2tyo("35.41.20.7")を呼び出すと 35.6890833333 が戻ります。

実際の計算は

"139.42.20.28" の場合

(139*3600+42*60 +20.28) /  3600  = 139.705633333333

これを、小数点以下10桁になるように四捨五入しています。

緯度、経度とも、おなじ計算式でOKです。