地理院のプログラムとは完全合致しない。
0.000000003度くらいの差が出る。
一般人が到達できなさそうな離島(沖ノ鳥島など)ではパラメータが提供されていないっぽい(jgd2tky)。
2003年十勝沖地震のパラメータファイルは2つあり、自治体で分割されている。自治体名が決まらないと変換できない(地理院に教えてもらった)。
自治体境界付近は両方のパラメータファイルで定義されているがパラメータの値が違うため計算結果も異なる(0.00000001度くらい?)。
変換手順
石川県志賀町のTokyo Datumの座標の場合、下記3回の変換が必要(地理院に教えてもらった)。
1. tky2jgdによる変換
2. noto2008_BLによる変換
3. touhokutaiheiyouoki2011による変換
TKY2JGD、patchJGDと比較して小数点第七位までは確実に合うようにできたっぽい。
経緯度から3次メッシュコードを求める際、ぴったり座標の扱いに誤りがあって正しいコードを取得できていなかった。
PHPでは素で小数の演算をすると桁落ちして誤差が大きくなる(JavaScriptは普通に記述して問題ない)。
bcmath関数群を使って桁落ちを防ぐことで小数点第八位(多分)まで合致するようになった。
プログラムはパラメータファイルを一旦全部読み込むためメモリをかなり使うので注意が必要。