オープンデータの平面直角座標系で一悩み

2017年7月1日


オープンデータを活用したサイトを WordPress で作ってみる
「このふじのくに静岡ロケ地ガイドのデータには、位置情報データも含まれていますので、googleMapAPI を使うと、地図も表示させられますね。」と書いたのですが、これが結構大変で。

ふじのくに静岡ロケ地ガイドの位置情報データは

この座標は平面直角座標(第8系)世界測地系です。
※平面直角座標は横軸をX軸、縦軸をY軸で表現する数学座標系を用いています。

この平面直角座標(第8系)世界測地系というのは、大雑把に言うと国内19か所に定められた原点への、北方向、東方向の距離です。
それに対して、googlemap の API が受け付けてくれる位置情報は緯度、経度ですので、平面直角座標(第8系)世界測地系の位置情報を緯度、経度に変換しないといけません。

その変換式は緯度、経度への換算 計算式らしいのですが、凄くややこしい。
エクセルで計算させたり、プログラムを組むのもめんどくさそう。
でも、緯度、経度への換算でX座標、Y座標を入力すれば、ページ内で変換してくれます。
ただ、このふじのくに静岡ロケ地ガイドのデータ、X座標、Y座標が入れ替わっているような。

一括で複数の平面直角座標(第8系)世界測地系、X座標・Y座標を変換するには、

# X座標(m) Y座標(m)
51393.962 67365.040
47867.642 -3939.385

のようにX座標(m)・Y座標(m)をスペースで区切ったファイルを用意してアップロードすると、緯度、経度への換算してくれたファイルをダウンロードできます。

例えば掛川城御殿の平面直角座標(第8系)世界測地系、X座標・Y座標を
[text]
# X座標(m) Y座標(m)
-135830.9032 -44431.99072
[/text]
のような、test.in のようなファイルを作って、一括変換からアップロードして「計算実行」を押すと
[text]
# このファイルは平面直角座標から緯度・経度への換算結果(一括処理)です。
# 選択された測地系は「世界測地系」、平面直角座標の系番号は、「8」です。
# 出力項目は以下の通りです。
# X座標(m) Y座標(m) 緯度(dms) 経度(dms) 真北方向角(dms) 縮尺係数 コメント
#——————————————————————————–
# X座標(m) Y座標(m)
-135830.9032 -44431.99072 344628.67211 1380052.40977 1636.75 0.99992432
[/text]
のようなファイルがダウンロードできます。

このファイルの
[text]
344628.67211 1380052.40977
[/text]
の部分が、緯度(dms) 経度(dms)になります。

この緯度・経度情報を使って googleMapAPI で地図上にマッピングすればOKか、とそうではなくて緯度(dms)とあるように、経度・緯度の位置情報にもいくつか種類があります。
dmsの、この出力の場合、
[text]
dd度mm分ss.ssssss秒
[/text]

[text]
ddmmss.sssss
[/text]
と出力しています。

60進法の度・分・秒をそのままつなげて、秒の小数点だけ表示しているわけです。

それに対してgoogleMapAPI で使っている経度・緯度はDEG (Degree) 表記、緯度経度を度の10進数で表す形式なんですね。
ですので

度の dd と
分である mm の部分を60で割った値と
秒である ss.sssss の部分を3600で割った値

を足したのがDEG (Degree) 表記になります。

この計算式は、緯度、経度への換算 計算式よりはるかに簡単なので、エクセルでサクッと計算してしまいましょう。

どんな計算式になるか…は、ちょっと考えてみてください。
答えは、保留にしておきます(^^;