iRSSの日記

はてなダイアリーiRSSの日記の続き

世界測地系←→日本測地系の変換を行うには

↓こちらのページが参考になります。
精度5m程度のブレがあってもいいなら三角関数なしでもOKです
Rubyに移植しようっと

三角関数を使わない変換式(簡単):

もう少し沢山の点を変換する必要があるが、メモリも計算能力も限られていると言う向きに、以下のような変換式を作りました。緯度Bと経度Lの数値は、度単位(D)で与えてください。

BWGS84 = BTokyo - 0.00010695*BTokyo + 0.000017464*LTokyo + 0.0046017
LWGS84 = LTokyo - 0.000046038*BTokyo - 0.000083043*LTokyo + 0.010040

前述の表を再現するように作ってあります。0.1秒程度違う所もありますが、せいぜい5m、目的に合わせてどうぞ。

逆にWGS 84からTokyoへの変換式は、以下の通り。

BTokyo = BWGS84 + 0.00010696*BWGS84 - 0.000017467*LWGS84 - 0.0046020
LTokyo = LWGS84 + 0.000046047*BWGS84 + 0.000083049*LWGS84 - 0.010041 

AppleScriptなど、三角関数を持たないスクリプト系言語では重宝すると思います。