緯度経度の座標変換|度分秒と十進、平面直角、測地系の違い
受け取った位置が「35度40分12.5秒」と書かれている。使いたい地図は「35.670139」を求めている。あるいは、測量の図面が「X=-8500.123 Y=12345.678」という見慣れない数字で書かれている。
位置の表し方は一つではありません。書き方が違うだけの場合と、基準そのものが違う場合があり、後者を取り違えると数百メートルずれます。
この記事では、度分秒と十進の度の変換から始めて、平面直角座標、測地系の違い、そして標高の2種類までを、順番に整理します。
度分秒と十進の度
同じ位置を表す2つの書き方です。
度分秒は、1度を60分に、1分を60秒に分けます。時計と同じ考え方です。
十進の度は、度の後ろを小数で表します。地図アプリやプログラムで使うのはこちらです。
度分秒から十進の度へ
分を60で割り、秒を3600で割って、度に足します。
35度40分12.5秒
= 35 + 40 / 60 + 12.5 / 3600
= 35 + 0.666667 + 0.003472
= 35.670139度
南緯と西経のときは、最後に符号を負にします。
十進の度から度分秒へ
逆をたどります。
139.759460度
整数部 139度
小数部 0.759460 × 60 = 45.5676 45分
小数部 0.5676 × 60 = 34.06 34.06秒
= 139度45分34.06秒
度と分だけの形
三つ目の書き方があります。度と分までを整数と小数で表し、秒を使いません。GPS受信機が出す文字列や、船と航空の世界で使われます。
3540.1234 → 35度40.1234分
左から2桁が度、残りが分です。経度なら左から3桁が度です。十進の度に直すには、分を60で割って足します。
35 + 40.1234 / 60 = 35.66872度
ここで間違えやすいのが、3540.1234を35.40度と読んでしまうことです。実際の位置より30キロメートルほど南に出ます。
測地系が違うと数百メートルずれる
ここからが本題です。書き方ではなく、基準そのものが違う場合の話です。
地球は完全な球ではなく、でこぼこした回転楕円体に近い形をしています。緯度と経度は、この楕円体をどこに、どう置くかを決めて初めて意味を持ちます。この決め方が測地系です。
日本では、2002年に基準が切り替わりました。それ以前の日本測地系と、現在の世界測地系です。
同じ場所でも、この2つでは値が違います。日本付近では、緯度と経度でそれぞれ12秒ほど、距離にして400メートルから450メートルずれます。
古い地形図、古い台帳、古い論文に載っている座標をそのまま地図アプリに入れると、この分だけ間違った場所が出ます。海の上や隣の街区に出て初めて気づく、ということが起こります。
判断の手がかりは年です。2002年より前の資料なら、日本測地系の可能性を疑ってください。座標の出どころに測地系が書かれていないときは、既知の地点を1つ入れてみて、正しい場所に出るかどうかを確かめるのが確実です。
なお、世界測地系のなかでも改定があり、日本では2011年の地震のあとに座標の値が改められています。数センチメートルの精度を扱う場面では、この違いも効いてきます。
平面直角座標系
測量や設計の図面で出てくる、XとYの数字です。
緯度と経度は球面の上の角度なので、そのままでは長さの計算に使えません。距離を出すたびに球面の計算が要り、面積の計算はさらに面倒です。
そこで、狭い範囲に限って平面とみなし、メートルで表します。これが平面直角座標系です。日本では全国が19の系に分けられ、それぞれに原点が決められています。
覚えておくとよいことが2つあります。
ひとつは、XとYの向きです。数学のグラフと逆で、Xが北向き、Yが東向きです。図面のXを横軸だと思って読むと、南北と東西が入れ替わります。
もうひとつは、系の番号です。同じ数字の組でも、どの系のものかで場所が変わります。図面に系の番号が書かれていなければ、まずそれを確かめてください。
日本国外では、UTMという別の分け方が広く使われています。地球を経度6度ごとの帯に分け、それぞれで平面に直します。
標高には2種類ある
位置と一緒に出てくる高さにも、性質の違う2つがあります。
楕円体高は、測地系で決めた楕円体の面からの高さです。衛星が直接測っているのはこちらです。
標高は、平均海面を延長した面からの高さです。地図に載っている高さ、日常で言う標高はこちらです。
この2つの差をジオイド高と呼びます。日本では30メートルから40メートルほどあります。
標高 = 楕円体高 - ジオイド高
差は場所によって変わるので、一律の数字を引くわけにはいきません。日本では、この差を全国にわたって示した数値の面が公開されており、変換のソフトがそれを参照します。
受信機が出す高さが楕円体高なのか標高なのかは、機器と設定で変わります。GPSの文字列では、標高とジオイド高が別々の項目に入っているので、両方を残しておくと後で困りません。
数メートルの誤差が許される用途なら気にせずに済みますが、水の流れる方向を扱う設計や、造成の土量の計算では、30メートルの取り違えは致命的です。
変換をどうするか
手で計算できるのは、度分秒と十進の度の間だけです。測地系の変換と、平面直角座標への変換は、決められた計算式と数値の表が要ります。
道具を選ぶときに見る点は3つです。
変換の前と後で、測地系を明示できること。どちらからどちらへ変換するのかを選べないものは、何を仮定しているのか分かりません。
高さを扱えること。平面だけの変換で済むのか、高さも直す必要があるのかを、先に決めておいてください。
そして、扱う件数です。数点なら画面で1つずつ入れれば済みます。数千点あるなら、ファイルごと変換できるものか、プログラムから呼べるものを選びます。
位置の情報は、どこへ行ったかがそのまま分かるデータです。他人の管理する場所へ上げる前に、その点を考えてください。手元で完結する道具を選ぶ、という判断もあります。
つまずきやすいところ
順に並べます。
度分秒の秒を、小数の分と取り違える。40分12.5秒と40.125分は別物です。
緯度と経度を逆に入れる。日本国内なら、緯度が20から46、経度が122から154の範囲です。この範囲を外れていたら入れ替わっています。
北緯と南緯、東経と西経の符号を忘れる。日本国内では両方とも正なので、国内のデータだけを扱っていると気づきません。
古い資料の座標を、そのまま現在の地図に入れる。400メートルのずれになります。
平面直角座標のXとYを入れ替える。北と東が逆になります。
楕円体高を標高として扱う。30メートルから40メートルの違いが出ます。
どれも、値そのものは正しく見えます。だから、変換したあとは必ず地図に置いて、思った場所に出るかを目で確かめてください。1点でも確かめれば、この種の間違いはすべて見つかります。
まとめ
書き方の違いは、計算で直せます。度分秒と十進の度は、60と3600で割って足すだけです。
基準の違いは、計算式と数値の表が要ります。測地系が違えば数百メートル、高さの種類が違えば数十メートル変わります。
そして、変換した結果は必ず地図で確かめてください。数字だけを見ていても、間違いは見つかりません。