F.Ko-Jiの「一秒後は未来」

経度・緯度を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)

  1. KiM より:

    はじめまして、緯度経度変換探していてみせていただきました。
    = 139 + (45 / 60) + (35.187 / 60 / 60)

    = 139 + (45 / 60) + (35.187 / 60 / 60 / 10)
    ではないのでしょうか??

  2. F.Ko-Ji より:

    139 ← 10進法なのでそのまま

    45 ← 60進法の小数第一位なので、60で割る

    35.187 ← 60進法の小数第二位なので、60の2乗で割る

    と理解していたのですが、違いますでしょうか?

KiM へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など