経度・緯度を60進法から10進法へ変換
多くのWeb地図サービスでは、経度や緯度のパラメータが60進法で与えられている。一方、Googleマップ及びGoogle Maps APIでは10進法が利用されている。なんらかの理由で60進法から10進法への変換が必要になった時は、以下の変換式を利用するとよい。
139°45′35.187″
= 139 + (45 / 60) + (35.187 / 60 / 60)
= 139.759774167
「度」はそのままで、「分」を60、「秒」を3600で割って、それらを足し合わせるだけである。
ちなみに逆に10進法から60進法へ変換するには、この逆を計算すればよく、
度 = int(139.759774167) = 139
分 = int(0.759774167 * 60) = int(45.58645002) = 45
秒 = int(0.58645002 * 60 *1000) / 1000 = 35.187
となる。
(追記) JavaScriptでは、int()にあたる関数はMath.floor()です。
(追記) 世界測地系と日本測地系にはズレがあります。(参照)
※間違いがあったので修正しました。m(_ _)m(2005/10/1)
※さらに間違いがあったので修正しました。m(_ _)m(2006/1/6)
はじめまして、緯度経度変換探していてみせていただきました。
= 139 + (45 / 60) + (35.187 / 60 / 60)
は
= 139 + (45 / 60) + (35.187 / 60 / 60 / 10)
ではないのでしょうか??
139 ← 10進法なのでそのまま
45 ← 60進法の小数第一位なので、60で割る
35.187 ← 60進法の小数第二位なので、60の2乗で割る
と理解していたのですが、違いますでしょうか?