<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>@masuidrive blog &#187; ruby</title>
	<atom:link href="http://blog.masuidrive.jp/index.php/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.masuidrive.jp</link>
	<description>life with open sources.</description>
	<lastBuildDate>Sat, 07 Jan 2012 18:37:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Ruby 1.9で文字コードの自動判別を行う</title>
		<link>http://blog.masuidrive.jp/index.php/2012/01/06/encoding-auto-detection-on-ruby-1-9/</link>
		<comments>http://blog.masuidrive.jp/index.php/2012/01/06/encoding-auto-detection-on-ruby-1-9/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 07:30:00 +0000</pubDate>
		<dc:creator>masuidrive</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[encode]]></category>

		<guid isPermaLink="false">http://blog.masuidrive.jp/?p=596</guid>
		<description><![CDATA[　たまにRubyの話題でも。 　Ruby 1.9で文字コードの自動判別をさせようとおもったら、意外に良いライブラリが見つからなくて苦労しました。 結局ICUをbindingした、charlock_holmesがちゃんと使えたので、メモです。 　OSXで使う場合は、下記の様にしてICUライブラリをインストールします。Linuxでは適当なパッケージシステムを使ってインストールしてください。 curl -O http://download.icu-project.org/files/icu4c/4.8.1.1/icu4c-4_8_1_1-src.tgz tar xvzf icu4c-4_8_1_1-src.tgz cd icu/source ./runConfigureICU MacOSX --with-library-bits=64 --disable-samples --enable-static make sudo make install 　charlock_holmes自体はgemで提供されています。 gem install charlock_holmes 　文字列をUTF-8に変換する場合は、iconvと組み合わせて下記の様に書きます。 encode = CharlockHolmes::EncodingDetector.detect(str)[:encoding] str.encode("UTF-8", encode) 【変更 2012/1/6 19:37】 コメントを頂いたので、iconvからString#encodeに切り換えました。 【変更 2012/1/6 18:52】 ICUのバージョンを4.8.1.1に上げました。]]></description>
			<content:encoded><![CDATA[				<p>　たまにRubyの話題でも。</p>
				<p>　Ruby 1.9で文字コードの自動判別をさせようとおもったら、意外に良いライブラリが見つからなくて苦労しました。<br />
				結局<a href="http://icu-project.org">ICU</a>をbindingした、<a href="https://github.com/brianmario/charlock_holmes">charlock_holmes</a>がちゃんと使えたので、メモです。</p>
				<p>　OSXで使う場合は、下記の様にしてICUライブラリをインストールします。Linuxでは適当なパッケージシステムを使ってインストールしてください。</p>
				<pre>curl -O http://download.icu-project.org/files/icu4c/4.8.1.1/icu4c-4_8_1_1-src.tgz
tar xvzf icu4c-4_8_1_1-src.tgz
cd icu/source
./runConfigureICU MacOSX --with-library-bits=64 --disable-samples --enable-static
make
sudo make install</pre>
				<p>　charlock_holmes自体はgemで提供されています。</p>
				<pre>gem install charlock_holmes</pre>
<p>　文字列をUTF-8に変換する場合は、iconvと組み合わせて下記の様に書きます。</p>
<pre><code>encode = CharlockHolmes::EncodingDetector.detect(str)[:encoding]
str.encode("UTF-8", encode)</code></pre>
				<p>【変更 2012/1/6 19:37】<br />
				コメントを頂いたので、iconvからString#encodeに切り換えました。</p>
				<p>【変更 2012/1/6 18:52】<br />
				ICUのバージョンを4.8.1.1に上げました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.masuidrive.jp/index.php/2012/01/06/encoding-auto-detection-on-ruby-1-9/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Geohashのアルゴリズム</title>
		<link>http://blog.masuidrive.jp/index.php/2010/01/15/geohash-algorithm/</link>
		<comments>http://blog.masuidrive.jp/index.php/2010/01/15/geohash-algorithm/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 07:35:23 +0000</pubDate>
		<dc:creator>masuidrive</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[geo]]></category>

		<guid isPermaLink="false">http://blog.masuidrive.jp/?p=249</guid>
		<description><![CDATA[Photo by Ludovico Cera 　前回、最後にGeohashのエンコード・デコード方法を解説、とか書いたのですが、私が書く前にyuroyoroさんがブログで解説していました。しっかり解説されているので、ぜひ、そちらをご覧ください。 　Geohashのミソは、座標を2進数にして、それを交互に並べる所にあります。そしてそれをBASE32でエンコードすることで、座標を文字列にして表現しています。 　BASE32は、5ビットで1文字なので、Geohashの長さが奇数の場合は、経度の方がビットが短くなります。 (例: 5文字の場合 全25ビット 緯度が13ビット、経度が12ビット) 　そのため、グリッドの大きさが、Geohashが奇数の場合は縦長、偶数の場合は横長になります。 　ビット列から文字列へのエンコード方法に、BASE32を使っているのは大文字小文字を区別しないためだと思いますが、これを16進数で表したら、もっと細かいグリッドで表現できるのではないかと思い、試してみました。 文字数 BASE32 16進数 緯度 経度 緯度 経度 6 609.08m (15bit) 988.77m (15bit) 4872.66m (12bit) 7910.16m (12bit) 7 152.27m (17bit) 123.60m (18bit) 1218.16m (14bit) 1977.54m (14bit) 8 19.03m (20bit) 30.90m (20bit) 304.54m (16bit) 494.38m (16bit) 9 4.76m (22bit) 3.86m (23bit) 76.14m (18bit) 123.60m [...]]]></description>
			<content:encoded><![CDATA[				<p class="eyecatch_photo"><img src="http://farm4.static.flickr.com/3165/2567692977_f2d0a78453_m.jpg"/><span class="photo_by">Photo by <a href="http://www.flickr.com/photos/21177199@N03/" title="Link to Ludovico Cera's photostream" rel="dc:creator cc:attributionURL"><b property="foaf:name">Ludovico Cera</b></a></span></p>
				<p> 　前回、<a href="/index.php/2010/01/13/geohash/">最後にGeohashのエンコード・デコード方法を解説</a>、とか書いたのですが、私が書く前に<a href="http://d.hatena.ne.jp/yuroyoro/20100115/1263526125">yuroyoroさんがブログで</a>解説していました。しっかり解説されているので、ぜひ、そちらをご覧ください。</p>
				<p>　Geohashのミソは、座標を2進数にして、それを交互に並べる所にあります。そしてそれをBASE32でエンコードすることで、座標を文字列にして表現しています。<br />
				　BASE32は、5ビットで1文字なので、Geohashの長さが奇数の場合は、経度の方がビットが短くなります。 (例: 5文字の場合 全25ビット 緯度が13ビット、経度が12ビット)<br />
				　そのため、グリッドの大きさが、Geohashが奇数の場合は縦長、偶数の場合は横長になります。<br />
				<span id="more-249"></span><br />
				　ビット列から文字列へのエンコード方法に、BASE32を使っているのは大文字小文字を区別しないためだと思いますが、これを16進数で表したら、もっと細かいグリッドで表現できるのではないかと思い、試してみました。</p>
				<table>
				<tr>
				<td rowspan="2" align="center">文字数</td>
				<td colspan="2" align="center">BASE32</td>
				<td colspan="2" align="center">16進数</td>
				</tr>
				<tr>
				<td align="center">緯度</td>
				<td align="center">経度</td>
				<td align="center">緯度</td>
				<td align="center">経度</td>
				</tr>
				<tr>
				<td align="right">6</td>
				<td align="right">609.08m (15bit)</td>
				<td align="right">988.77m (15bit)</td>
				<td align="right">4872.66m (12bit)</td>
				<td align="right">7910.16m (12bit)</td>
				</tr>
				<tr>
				<td align="right">7</td>
				<td align="right">152.27m (17bit)</td>
				<td align="right">123.60m (18bit)</td>
				<td align="right">1218.16m (14bit)</td>
				<td align="right">1977.54m (14bit)</td>
				</tr>
				<tr>
				<td align="right">8</td>
				<td align="right"> 19.03m (20bit)</td>
				<td align="right"> 30.90m (20bit)</td>
				<td align="right">304.54m (16bit)</td>
				<td align="right">494.38m (16bit)</td>
				</tr>
				<tr>
				<td align="right">9</td>
				<td align="right">  4.76m (22bit)</td>
				<td align="right">  3.86m (23bit)</td>
				<td align="right"> 76.14m (18bit)</td>
				<td align="right">123.60m (18bit)</td>
				</tr>
				<tr>
				<td align="right">10</td>
				<td align="right">  0.59m (25bit)</td>
				<td align="right">  0.97m (25bit)</td>
				<td align="right"> 19.03m (20bit)</td>
				<td align="right"> 30.90m (20bit)</td>
				</tr>
				<tr>
				<td align="right">11</td>
				<td align="right">  0.15m (27bit)</td>
				<td align="right">  0.12m (28bit)</td>
				<td align="right">  4.76m (22bit)</td>
				<td align="right">  7.72m (22bit)</td>
				</tr>
				<tr>
				<td align="right">12</td>
				<td align="right">  0.02m (30bit)</td>
				<td align="right">  0.03m (30bit)</td>
				<td align="right">  1.19m (24bit)</td>
				<td align="right">  1.93m (24bit)</td>
				</tr>
				</table>
				<p>　そうしたところ、BASE32では6〜8文字で、600m、150m、19mとなるところ、16進数では7〜9文字で、1200m、305m、76mとなります。この感じだと、グリッドの大きさ的にも、BASE32の方が使いやすいように見えます。</p>
				<p>　このアルゴリズムは、2次元の座標を1つの文字列にまとめることができ、緯度経度以外の座標系にも応用できるんじゃないかと思います。</p>
				<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?o=9&amp;p=8&amp;l=as1&amp;asins=4627947011&amp;t=masuidriveblo-22&amp;IS1=1&amp;fc1=666666&amp;lc1=6666FF&amp;bg1=FFFFFF&amp;lt1=_blank&amp;bc1=FFFFFF&amp;npa=1&amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?o=9&amp;p=8&amp;l=as1&amp;asins=4797342773&amp;t=masuidriveblo-22&amp;IS1=1&amp;fc1=666666&amp;lc1=6666FF&amp;bg1=FFFFFF&amp;lt1=_blank&amp;bc1=FFFFFF&amp;npa=1&amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.masuidrive.jp/index.php/2010/01/15/geohash-algorithm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>緯度経度を文字列で表すGeoHash</title>
		<link>http://blog.masuidrive.jp/index.php/2010/01/13/geohash/</link>
		<comments>http://blog.masuidrive.jp/index.php/2010/01/13/geohash/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 07:34:20 +0000</pubDate>
		<dc:creator>masuidrive</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.masuidrive.jp/?p=212</guid>
		<description><![CDATA[　なんか世間的に位置情報アプリが流行ってるらしいし、Google App Engine(GAE)も楽しそう。どうせだから、GAEでなんか位置情報アプリでも作ってみよう！と思ってTwitterに書き込んだところ、Geohashという、位置情報のプロトコル？を教えてもらいました。 　これは、その名の通り、位置情報をハッシュで表す規格なのですが、いろいろおもしろい特徴があり、調べているうちに楽しくなってきたので、勢い余ってPure Rubyのライブラリまで書いちゃいました。 　そのあと、結局ライブラリを作ったところで満足して、アプリは何も作らなかったので、せめてGeohashの解説でも書いておこうと思います。 　位置情報は通常、緯度経度で表します。たとえば東京タワーの緯度経度は35.65861, 139.745447です。 北を上にした地図でいうと、緯度がY座標で経度がX座標です。英語では緯度をlatitude、経度をlongitudeと呼びます。 　この緯度経度は測地系によって値が違いますが、ここではGPSなどで使われている世界測地系を前提にします。 　位置情報系のアプリでは、「今いる場所をGPSで取得して、その近くにあるランドマークを表示する」ということがよく行われます。 　これをGoogle App EngineのDataStoreで行おうと思うと、2つのカラムで比較ができないという、DataStoreの制約が問題になります。(例: x&#62;1 and y&#62;1の様なことができない) 　そこで、GeoHashの登場です。GeoHashは、緯度経度の二つの座標を、一つの文字列にまとめたものです。 　東京タワーをGeoHashで表現すると「xn76ggrw26」になります。GeoHashはグリッドになるので、緯度経度のようにポイントではありません。 　先のハッシュが8文字あると、19m*31mのグリッドになります。 　GeoHashの最大の特徴は、その長さによって精度が変わることです。 東京タワーを中心とした 19m*31mのエリアは「xn76ggrw」ですが、これを頭5文字「xn76gg」だけ取り出すと、下の図の様なエリアを表します。 　データベースから、「xn76gg」の前方一致で検索することで、エリア内のポイントを簡単に取り出すことができます。 　しかし、これでは、上の図の様に、ランドマークがメッシュの端にある場合、すぐ近くのポイントもヒットしなくなってしまいます。 　 　そこで、geohashで検索する場合は、右の図の様に隣接するブロックも同時に検索します。東京タワーの周りを探す場合は、「xn76gg」だけを検索するのではなく、&#8217;xn76gu&#8217;,'xn76gf&#8217;,'xn76u5&#8242;,&#8217;xn76ge&#8217;,'xn76gs&#8217;,'xn76uh&#8217;,'xn76u4&#8242;,&#8217;xn76gd&#8217;,'xn76gg&#8217;も同時に検索することで、おおよそ2km*3kmの範囲で検索が可能です。 　多くのGeohashライブラリには、隣接するGeohashコードを計算する関数が用意されています。 それを使い、上記のように近接のブロックのGeohashコードを同時に検索することで、東京タワーからおおよそ1〜1.5kmのポイントを割り出すことができます。 　GAEのDataStoreは、文字列の前方一致が高速に行えるので、Geohashで場所の絞り込み検索などを容易に行うことができます。 　緯度経度から、Geohashで計算するライブラリは各種言語用にリリースされています。 Pure Rubyで書かれたライブラリが無かったで、自作したライブラリもありますので、Rubyの人はぜひ下記のコマンドでインストールしてみてください。 gem install pr_geohash 使い方は、READMEをご覧ください。 　実際にGeohashを試すことの出来るデモを下記のURLに設置しました。興味のある人は、直接触ってみると簡単に使い方が分かると思います。 http://blog.masuidrive.jp/wp-content/uploads/2010/01/geohash.html 　緯度経度を精度も含めて、文字列一つで扱えるのでURLに位置情報を入れたい場合など、便利なケースがあるんじゃないかと思います。 　Twitterでも緯度経度じゃなくて、Geohashで位置情報を管理してくれたらよかったのに。 そしたら、5文字ぐらいにすることで「だいたいシアトルにいる」みたいな大まかな位置情報だけ公開するとかできて、プライバシー的にも利点があったのになー。 p.s 　Geohashのエンコーディング方法の解説も欲しいって人います？ もし居たらコメントください。 追記 01/13 0:34 　Geohashのアルゴリズムを書きました。 参考データ: =begin 東京付近のGeoHashの精度を算出するRubyスクリプト &#124;文字数&#124; 南北 &#124; [...]]]></description>
			<content:encoded><![CDATA[				<p>　なんか世間的に位置情報アプリが流行ってるらしいし、Google App Engine(GAE)も楽しそう。どうせだから、GAEでなんか位置情報アプリでも作ってみよう！と思ってTwitterに書き込んだところ、<a href="http://en.wikipedia.org/wiki/Geohash">Geohash</a>という、位置情報のプロトコル？を教えてもらいました。</p>
				<p>　これは、その名の通り、位置情報をハッシュで表す規格なのですが、いろいろおもしろい特徴があり、調べているうちに楽しくなってきたので、勢い余って<a href="http://rubyforge.org/forum/forum.php?forum_id=35553">Pure Rubyのライブラリ</a>まで書いちゃいました。</p>
				<p>　そのあと、結局ライブラリを作ったところで満足して、アプリは何も作らなかったので、せめてGeohashの解説でも書いておこうと思います。<br />
				<span id="more-212"></span><br />
				　位置情報は通常、緯度経度で表します。たとえば東京タワーの緯度経度は35.65861, 139.745447です。<br />
				北を上にした地図でいうと、緯度がY座標で経度がX座標です。英語では緯度をlatitude、経度をlongitudeと呼びます。</p>
				<p>　この緯度経度は<a href="http://ja.wikipedia.org/wiki/%E6%B8%AC%E5%9C%B0%E7%B3%BB">測地系</a>によって値が違いますが、ここではGPSなどで使われている<a href="http://ja.wikipedia.org/wiki/%E6%B8%AC%E5%9C%B0%E7%B3%BB">世界測地系</a>を前提にします。</p>
				<p class="eyecatch_photo"><img src="http://img.skitch.com/20100113-t8dqgi2q75tuwnj4xp19kuri4q.jpg" alt="geohash demonstrator" style="border: 4px solid #aaa;"/></p>
				<p>　位置情報系のアプリでは、「今いる場所をGPSで取得して、その近くにあるランドマークを表示する」ということがよく行われます。<br />
				　これをGoogle App EngineのDataStoreで行おうと思うと、2つのカラムで比較ができないという、DataStoreの制約が問題になります。(例: x&gt;1 and y&gt;1の様なことができない)</p>
				<p>　そこで、GeoHashの登場です。GeoHashは、緯度経度の二つの座標を、一つの文字列にまとめたものです。</p>
				<p>　東京タワーをGeoHashで表現すると「xn76ggrw26」になります。GeoHashはグリッドになるので、緯度経度のようにポイントではありません。<br />
				　先のハッシュが8文字あると、19m*31mのグリッドになります。</p>
				<p>　GeoHashの最大の特徴は、その長さによって精度が変わることです。<br />
				東京タワーを中心とした 19m*31mのエリアは「xn76ggrw」ですが、これを頭5文字「xn76gg」だけ取り出すと、下の図の様なエリアを表します。<br />
				<img src="http://img.skitch.com/20100113-d2k36g72c8j2fnqutn2kjyntce.jpg" style="border: 4px solid #aaa;"/></p>
				<p>　データベースから、「xn76gg」の前方一致で検索することで、エリア内のポイントを簡単に取り出すことができます。</p>
				<p>　しかし、これでは、上の図の様に、ランドマークがメッシュの端にある場合、すぐ近くのポイントもヒットしなくなってしまいます。<br />
				　<br />
				　そこで、geohashで検索する場合は、右の図の様に隣接するブロックも同時に検索します。東京タワーの周りを探す場合は、「xn76gg」だけを検索するのではなく、&#8217;xn76gu&#8217;,'xn76gf&#8217;,'xn76u5&#8242;,&#8217;xn76ge&#8217;,'xn76gs&#8217;,'xn76uh&#8217;,'xn76u4&#8242;,&#8217;xn76gd&#8217;,'xn76gg&#8217;も同時に検索することで、おおよそ2km*3kmの範囲で検索が可能です。</p>
				<p><img src="http://img.skitch.com/20100113-eefcf893i2uqs4wrtu32q3e55y.jpg" style="border: 4px solid #aaa;"/></p>
				<p>　多くのGeohashライブラリには、隣接するGeohashコードを計算する関数が用意されています。<br />
				それを使い、上記のように近接のブロックのGeohashコードを同時に検索することで、東京タワーからおおよそ1〜1.5kmのポイントを割り出すことができます。</p>
				<p>　GAEのDataStoreは、文字列の前方一致が高速に行えるので、Geohashで場所の絞り込み検索などを容易に行うことができます。</p>
				<p>　緯度経度から、Geohashで計算するライブラリは<a href="http://en.wikipedia.org/wiki/Geohash">各種言語用にリリース</a>されています。<br />
				Pure Rubyで書かれたライブラリが無かったで、自作したライブラリもありますので、Rubyの人はぜひ下記のコマンドでインストールしてみてください。<br />
				<code><br />
				gem install pr_geohash<br />
				</code><br />
				使い方は、<a href="http://github.com/masuidrive/pr_geohash">README</a>をご覧ください。</p>
				<p>　実際にGeohashを試すことの出来るデモを下記のURLに設置しました。興味のある人は、直接触ってみると簡単に使い方が分かると思います。<br />
				<a href="http://blog.masuidrive.jp/wp-content/uploads/2010/01/geohash.html">http://blog.masuidrive.jp/wp-content/uploads/2010/01/geohash.html</a></p>
				<p>　緯度経度を精度も含めて、文字列一つで扱えるのでURLに位置情報を入れたい場合など、便利なケースがあるんじゃないかと思います。</p>
				<p>　Twitterでも緯度経度じゃなくて、Geohashで位置情報を管理してくれたらよかったのに。<br />
				そしたら、5文字ぐらいにすることで「だいたいシアトルにいる」みたいな大まかな位置情報だけ公開するとかできて、プライバシー的にも利点があったのになー。</p>
				<p>p.s<br />
				　Geohashのエンコーディング方法の解説も欲しいって人います？<br />
				もし居たらコメントください。</p>
				<p><strong>追記 01/13 0:34 </strong><br />
				　<a href="http://blog.masuidrive.jp/index.php/2010/01/15/geohash-algorithm/">Geohashのアルゴリズム</a>を書きました。</p>
				<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?o=9&amp;p=8&amp;l=as1&amp;asins=4627947011&amp;t=masuidriveblo-22&amp;IS1=1&amp;fc1=666666&amp;lc1=6666FF&amp;bg1=FFFFFF&amp;lt1=_blank&amp;bc1=FFFFFF&amp;npa=1&amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?o=9&amp;p=8&amp;l=as1&amp;asins=4627947011&amp;t=masuidriveblo-22&amp;IS1=1&amp;fc1=666666&amp;lc1=6666FF&amp;bg1=FFFFFF&amp;lt1=_blank&amp;bc1=FFFFFF&amp;npa=1&amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?o=9&amp;p=8&amp;l=as1&amp;asins=4797342773&amp;t=masuidriveblo-22&amp;IS1=1&amp;fc1=666666&amp;lc1=6666FF&amp;bg1=FFFFFF&amp;lt1=_blank&amp;bc1=FFFFFF&amp;npa=1&amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe></p>
				<p>参考データ:</p>
				<pre>
=begin
東京付近のGeoHashの精度を算出するRubyスクリプト

|文字数|   南北  |   東西  |
|    6 | 609.08m | 988.77m |
|    7 | 152.27m | 123.60m |
|    8 |  19.03m |  30.90m |
|    9 |   4.76m |   3.86m |
|   10 |   0.59m |   0.97m |
=end

puts (6..10).map {|i|
  lng_bit = (5 * i / 2.0).ceil
  lat_bit = (5 * i / 2.0).floor
  lng_grid_size = sprintf("%6.2fm", (360.0 / (2 ** lng_bit))*(25.0*60*60))
  lat_grid_size = sprintf("%6.2fm", (180.0 / (2 ** lat_bit))*(30.8*60*60))
  [i, lat_bit, lng_bit, lat_grid_size, lng_grid_size]
}.map{|r| "|#{r.join('|')}|"}.join("\n")
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.masuidrive.jp/index.php/2010/01/13/geohash/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

