日本測地系から世界測地系に変換する

超お久しぶりのポスト。

じゃらんWebサービスは、じゃらんnetの提供する宿泊施設情報を活用して、開発者やサイト制作者、アフィリエイトサイトオーナーの皆様のために情報提供をしています。

最近じゃらんWebサービスを使って遊んだのだけれど、APIから戻ってくる緯度・経度が日本測地系でそのまんま地図にプロットするとズレッズレやないか! で困っちゃった。

困った時の他人頼み

どうするかなんてググれば誰かが教えてくれるさ!
さあこい! 変換式こい!

じゃらんWebサービスは、じゃらんnetの提供する宿泊施設情報を活用して、開発者やサイト制作者、アフィリエイトサイトオーナーの皆様のために情報提供をしています。

というか、ここに書いてあるじゃん!
ググるといっぱい出てくるの 0.00010695 とかをかけたり足したりする簡易計算なるモノで変換してみたんです。

で、プロットしてみた。
いやいや、これ・・・ ズレッズレやないかあああああああああああ!

数百m単位でずれてるずれてる。
まあ誤差の範囲ですね!で締めくくっちゃってる人。
範囲外だと思うよ! 諦めないで!! 最後まで走り抜けて!!!

困った時の諦めない人頼み

いやいや、きっといるはずだよ。
ズレッズレじゃない方法を諦めずに確立して提供してくれる人が!

で、たどり着きました。

日本測地系から世界測地系に変換する(けっこうガチで計算するVer) – 東京伊勢海老通信

マジ神や! ありがとうきたむらさん!
何々? PHPで動くのがあって、それをRubyに移植したんですね。
そのPHPのやつください・・・。
ありませんか、そうですか・・・。

けっこうガチでPHPへ再移植したった

もっと探せばその元になったブツにたどり着くかもだけど、0.010041046 とかを引いたりかけたりするやつばっかりの検索結果に嫌気が指したので、素直にPHPへ再移植。
たぶんまともに動くはずだよ。
何をどう計算してるかなんて正直全然わかんないよ。

ねえ君、これが誤差の範囲だと思うんだ

計算された、35.511572171709,137.83366470446 で見ると

Find local businesses, view maps and get driving directions in Google Maps.

なかなかいいトコついてるついてる。