続々 Google Map
昨日の日記のコメントから、同じ事を考える人が他にもいることが判明しちゃいました。
最初はびっくり仰天でしたが、でもまぁ普通にプログラムできる人がGoogleMapをいじっていたら、同じような事を考えるよねぇ、なんて思えてきたりもして。
sumim氏はSqueakという言語で変換プログラムを作ったり、Javascriptのブックマークレットにしたり、さらにはGoogleMap→MapFanの逆変換したり、測地補正(?)してたりで、スゴイです。
で、コードが公開されているので、参考にして僕のツールも測地補正(?)するように変更してみました。これでピンポイントですヨ。
で、以下がRubyによるコードです。ご参考までに。
#!/usr/local/bin/ruby require "cgi" input = CGI.new url = input["url"] if /E(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})N(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ =~ url e = $1.to_f + $2.to_f / 60 + ($3.to_f + $4.to_f * 0.1 ) / 60 / 60 - 0.00325 n = $5.to_f + $6.to_f / 60 + ($7.to_f + $8.to_f * 0.1 ) / 60 / 60 + 0.0032 googleURL = "http://maps.google.com/maps?ll=" + sprintf("%.5f", n) + "," + sprintf("%.5f", e) + "&spn=0.073548,0.078848&t=k&hl=ja" print input.header({'status' => '302 Found', 'Location' => googleURL }) else print "Content-type: text/html\n\n" print "入力を解析できませんでした" end
えーっと、だからこんなことしている時間があったら、他にすべきことが山積みなんですけど(x_x。