緯度・経度の表現を60進法から10進法に変換する

緯度(Latitude/Lat)・経度(Longitude/Lat)の数値表現について

  • 一般に度・分・秒で表される
    (例) 東経139度45分35秒187  (=139度45分35.187秒)
    度はdegree (d)、分はminute (m)、秒はsecond (s)
    分と秒は60進法、秒に小数点以下の数値がつく場合10進表記。
  • インターネット地図では全て10進法で表される
    (例) 東経139.759774167
    変換式: 139 + (45 / 60) + (35.187 / 60 / 60) ・・・分を60で、秒を3600で割って足し合わせる。
  • NMEAフォーマットでは度と分で表される
    「秒数は使わず」に「分を小数表記」し、それらを並べて記述する。
    (例) 13945.35187  (=139度45.35187分)

当面の策として以下の関数で変換する。(やっつけの方法。元の経緯度の分の桁が1桁の場合は動作しない。)

function gpsLL2degree(s){
    var x_degree = Math.floor(s / 100);
    var x_minute = s - (x_degree * 100);
    var x_minute2 = x_minute / 60;
    return x_degree + x_minute2;
}

参考にしたサイト:
経度・緯度を60進法から10進法へ変換

カテゴリー: Tips タグ: パーマリンク