Google Earth(TM) 地図サービスのオススメスポット・Wiki更新状況・おもしろい情報の紹介などを書き綴っていきます。
金曜日, 9月 21, 2007
木曜日, 9月 13, 2007
Ruby + WebAPI
先日の楽天宿泊施設APIとのマッシュアップネタについてです。
まずはソースです。IDは*印にしています。
rakuten_hotel.rb
RubyでXMLを効率的に扱うためのライブラリであるREXMLとについてはこちらの記事、ヘッダをつけるために利用できるcgiライブラリについてはこちらの記事で取り上げました。
ここらあたりの記事と今回のサンプルとの違いは「GoogleEarthからパラメータを受け取る」という点でしょう。これはcgiライブラリを利用して取得します。
query_stringでパラメータを取得して、&や=で分割しています。本来はパラメータの設定ももうちょっと体裁よくすれば良かったですが、パラメータを送るネットワークリンクを変更するのが面倒だったのでこんな感じにしてしまいました。
測地系変換のスクリプトを利用する前に3600(または360000)を乗じたり除したりしているのは、楽天のAPIが秒単位で小数点第2位までしか受け付けないという仕様のためです。3600の掛算・割り算で秒と度の変換、100の掛算・割り算で(整数と小数の変換を絡めて)小数点第2位への変換をしています。
あと、無意味に型を変換していますが、これも面倒なのでそのままです。。
月曜日, 9月 10, 2007
Rubyで測地系変換
前回の続きです。
一応、こんな感じでスクリプトを作ってみたのでアップしてみました。
change.rb
ChangeLonLat.llhが実際に測地系を変換するクラスメソッドになり、基の緯度・経度や移動量とか扁平率とかを引数で渡すことでいろんな測地系に変えることが出来ると思います。
ChangeLonLat.tky2wgsとChangeLonLat.wgs2tkyは、世界測地系と日本測地系で利用する引数をあらかじめ設定したものになります。
変換した結果は[緯度,経度,高さ]の順番に配列として得ることが出来ます。
試しに、ge.rbという簡単なサンプルを作って測地系変換させてみたのが下の画像です。
万一利用される方は自己責任でお願いします。
万一利用される方は自己責任でお願いします。
金曜日, 9月 07, 2007
現実逃避と測地系変換
ブログ更新より優先度の高い用が多く、ここのところあまり更新していませんでした。その間GoogleEarth周辺はいろいろと動きがあったようですね。完全に乗り遅れています。
本当は他にやる事がいっぱいあるにも係わらず、今日は現実逃避。先日の測地系変換を完了させてみることにしました。ずっと放置というのも気持ちが悪いものです。
とりあえず実際の動作確認のため、日本測地系の楽天のAPIから得た宿泊施設情報をGoogleEarth上に展開するサンプルを作成してみました。
サンプル(rakuten_sample.kml)
利用方法は右クリック更新です。
大体うまくいっている様に思います。近所(松江市)の宿泊施設の位置を確認しただけですので、精度については言及できませんが、GoogleEarthに利用するには問題ないと思われます。
【雑感】
- 測地系以外の点においても楽天のAPIはやはり使いにくい(3600を乗じたり除したり、小数点第3位以下を切り捨てたりしなければならない。)
- 三角関数を使わない変換式と比べても、どちらが正確だというものでもないと伺ったので、(楽天APIを触るのに)わざわざこの変換スクリプトを利用しなくてもよかったかもしれない。
- ただ、移動量とか扁平率とか引数で与えられるようにしたので、いろんな変換に対応できると思う。とりあえず、測地系に悩まされずに済みそうなのが嬉しいところ。これからはわざわざ式を書くことも無いのも嬉しい。
登録:
投稿 (Atom)


