PythonでGeoHash

 GeoHashとは緯度経度を細かく範囲で分けてその範囲を文字列で表現する仕様です。
http://en.wikipedia.org/wiki/Geohash
日本語だと、
http://blog.masuidrive.jp/index.php/2010/01/13/geohash/
こことか
http://d.hatena.ne.jp/yuroyoro/20100115/1263526125
ここで詳しく説明されています。要は文字列で二次元の範囲を指定できる。しかも、文字列の長さによってその範囲の精度を変えられる。しかもしかも、その文字列はDBで前方一致検索しやすい。という感じで、活用方法としては、場所をピンポイントとして教えたくはないが、ここらへんにいるよー的な位置情報を与えたい場合とか、文字数制限があるTwitterで大まかな現在地を短い文字列でポストするとか、情報の圧縮(と言っていいのか)という観点からTwitterと親和性が高そうです。それで、アルゴリズム読んでみて、自分でもPythonでライブラリを書いてみました。速度とか気にしないでとりあえず動くことを目的としてます。作ってみて、Pythonは二進数処理と相性がよくないことがよーくわかりました。頭よくないので文字列で処理してます。ソースはGitHubに置いてます。誰かもっとうまいやり方教えてください。
http://gist.github.com/294599
最初からBase32のそれぞれの文字に対応した二進数5桁の文字列を辞書で持つようにしました。あと、辞書でキーから値を求めるだけじゃなく値からキー求められたらうれしいけどそれは無理な話っすよね。