tohokuaikiのチラシの裏

技術的ネタとか。

ゼンリンのマップAPIが日本測地系のミリ秒でデータを持っていたのでGoogleMapのデータ形式に変換したかった

緯度経度のデータ形式には、2つ壁があって、座標系と表示形式。

座標系

日本測地系世界測地系がある。3 日本測地系と世界測地系 | 国土地理院からの引用。

我が国では、改正測量法の施行前は、明治時代に採用したベッセル楕円体を使用していました。明治政府は、近代国家に不可欠な全国の正確な地図である5万分の1地形図を作るために、基準点網を全国に整備しました。この時採用された楕円体が、改正測量法の施行前まで使用されてきたベッセル楕円体です。そして、当時の東京天文台の経度・緯度が、天文観測により決定されました。この位置が現在の日本経緯度原点となっています。この測地基準系を「日本測地系」と呼んでいます。全国に設置された基準点の経度・緯度は、日本経緯度原点を絶対的な位置の基準として求められて行ったのです。

 しかし、VLBIや人工衛星により地球規模の観測ができるようになった今日では、日本測地系は、残念ながら、地球全体によく適合した測地基準系であるとは言えなくなってしまいました。

 一方で、地球全体によく適合した測地基準系として、世界測地系が構築されています。 世界測地系とは、VLBIや人工衛星を用いた観測によって明らかとなった地球の正確な形状と大きさに基づき、世界的な整合性を持たせて構築された経度・緯度の測定の基準で、国際的に定められている測地基準系をいいます。

なるほど。わからん。ガチで変換するとなると、データテーブルが必要だが、簡易的にはこんな式で出せるらしい。日本測地系と世界測地系相互変換についてからの引用

日本測地系世界測地系

世界測地系緯度 = 日本測地系緯度 – 0.00010695 * 日本測地系緯度 + 0.000017464 * 日本測地系経度 + 0.0046017
世界測地系経度 = 日本測地系経度 – 0.000046038 * 日本測地系緯度 – 0.000083043 * 日本測地系経度 + 0.010040

世界測地系日本測地系

日本測地系緯度 = 世界測地系緯度 + 0.00010696 * 世界測地系緯度 – 0.000017467 * 世界測地系経度 – 0.0046020
日本測地系経度 = 世界測地系経度 + 0.000046047 * 世界測地系緯度 + 0.000083049 * 世界測地系経度 – 0.010041

表示形式

表示形式は60進(度・分・秒・ミリ秒)と10進。60進と言いつつも度とミリ秒は10進なのがミソっで、10進は度に合わせたものとミリ秒に合わせたものがある。

60進(度・分・秒)は35.40.50.109(35度40分50秒109 *1)のように書く。度だけが10進法なので、分以下を10進法で度に合わせればよくて、これはただの進数変換。

(度に合わせた10進にする)
〇度■分▲秒◎ =  〇 + (■/60) + (▲/3600) + (◎/3600000)
(ミリ秒に合わせた10進にする)
〇度■分▲秒◎ =  〇*3600*1000 + ■*60 * 1000 + ▲*1000 + ◎

実例を挙げてまとめると。

表にまとめるとこんな感じ。例示の緯度経度は「東京都千代田区千代田1-1 皇居」です。

座標系

緯度 10進(度) 10進(ミリ秒) 60進(度・分・秒)
日本測地系 35.6805861 128450110 35.40.50.109
世界測地系 35.6838232 128461764 35.41.1.763

表示形式

経度 10進(度) 10進(ミリ秒) 60進(度・分・秒)
日本測地系 139.7570472 503125370 139.45.25.369
世界測地系 139.7538283 503113782 139.45.13.781

エクセルで使うならこんな感じ

A B C D E F
1 緯度(日本測地系・ミリ秒) 経度(日本測地系・ミリ秒) 緯度(日本測地系・10進(度)) 経度(日本測地系・10進(度)) 緯度(世界測地系・10進(度)) 経度(世界測地系・10進(度))
2 128450110 503125370 =A2/3600000 =B2/3600000 =C2-C2 * 0.00010695+D2 * 0.000017464+0.0046017 = D2 - C2 * 0.000046038 - D2 * 0.000083043 + 0.01004

GoogleMapへのリンク

GoogleMapは、世界測地系を度に合わせた10進で使ってるので、GoogleMapへのリンクは
https://www.google.com/maps?q=35.6838232,139.7538283
となる。

*1:あるいは、35度40分50.109秒とも書けるのか?