タグ

geohashに関するdeg84のブックマーク (8)

  • geohash demonstrator

    隣接ブロックも描画 geohash.js © 2008 David Troy modified by masuidrive

  • http://openlocation.org/geohash/geohash-js/

  • Geohash いまさらながら衝撃を受けました

    iPhoneで four squareのような事をしたいと思って、手軽にGPS座標を扱える仕組みを考えていたところ、こういうのにぶち当たりました。 geohash.org 仕組みを読んで納得。これはすげぇ。 メカニズムについては、他の人が詳しく書いてるので、そちらを参照頂くとして、リンク置いときます。 GPS座標を短い文字列で扱えるGeoHashが面白い Geohashのアルゴリズム GeoHashのdecodeのアルゴリズムの解説します 下にいくほど詳細な説明になります。 これは、久しぶりに頭をハンマーで殴られたような衝撃ですね。 GPSの座標は、いわゆる座標として計算したりするのが当たり前だと思ってたんですが、そうじゃなかった。 地球を、南北に -90°~0と0~+90°、東西に-180°~0と0~+180°に分割して目的のエリアがそれぞれどちらに含まれるかを、0か1の2ビットで表現す

  • Geohashのアルゴリズム

    Photo by Ludovico Cera 前回、最後にGeohashのエンコード・デコード方法を解説、とか書いたのですが、私が書く前にyuroyoroさんがブログで解説していました。しっかり解説されているので、ぜひ、そちらをご覧ください。 Geohashのミソは、座標を2進数にして、それを交互に並べる所にあります。そしてそれをBASE32でエンコードすることで、座標を文字列にして表現しています。 BASE32は、5ビットで1文字なので、Geohashの長さが奇数の場合は、経度の方がビットが短くなります。 (例: 5文字の場合 全25ビット 緯度が13ビット、経度が12ビット) そのため、グリッドの大きさが、Geohashが奇数の場合は縦長、偶数の場合は横長になります。 ビット列から文字列へのエンコード方法に、BASE32を使っているのは大文字小文字を区別しないためだと思いますが、これを

    Geohashのアルゴリズム
  • GeoHashのdecodeのアルゴリズムの解説します & ScalaのGeoHashライブラリを作ってみました(仮) - ( ꒪⌓꒪) ゆるよろ日記

    GeoHash(http://en.wikipedia.org/wiki/Geohash)は、緯度経度を文字列のハッシュで表現する仕様です。 GeoHashにより表現された緯度経度の情報は、一つの文字列で緯度と経度という2次元の情報に加えて精度も表すことができるという特徴を持っています。 例えば、どうでしょうバカの聖地である北海道札幌市の平岸高台公園は、北緯43.025東経141.377ですが、これをGeoHashで表現すると、"xpssc0"となります。 この"xpssc0"というGeoHash表現は、「北緯43.0224609375から43.0279541015625の間で、東経141.3720703125から141.383056640625の矩形範囲」であり、座標はこの矩形範囲の中心点になります。 @masuidrive blogさんの緯度経度を文字列で表すGeoHash - @ma

    GeoHashのdecodeのアルゴリズムの解説します & ScalaのGeoHashライブラリを作ってみました(仮) - ( ꒪⌓꒪) ゆるよろ日記
  • Geohash PHP Class | LordElph's Ramblings

  • 緯度経度を文字列で表すGeoHash - @masuidrive blog

    なんか世間的に位置情報アプリが流行ってるらしいし、Google App Engine(GAE)も楽しそう。どうせだから、GAEでなんか位置情報アプリでも作ってみよう!と思ってTwitterに書き込んだところ、Geohashという、位置情報のプロトコル?を教えてもらいました。 これは、その名の通り、位置情報をハッシュで表す規格なのですが、いろいろおもしろい特徴があり、調べているうちに楽しくなってきたので、勢い余ってPure Rubyのライブラリまで書いちゃいました。 そのあと、結局ライブラリを作ったところで満足して、アプリは何も作らなかったので、せめてGeohashの解説でも書いておこうと思います。 位置情報は通常、緯度経度で表します。たとえば東京タワーの緯度経度は35.65861, 139.745447です。 北を上にした地図でいうと、緯度がY座標で経度がX座標です。英語では緯度をlati

  • Geohash関数 とりあえずPHP

    Geohashエンコード、デコード関数を書いてみた。 Geohash文字列を緯度と経度の区間に変換:geohash_decode_interval Geohash文字列を緯度と経度に変換:geohash_decode 緯度と経度をGeohash文字列に変換:geohash_encode Geohash文字列から、隣接する領域((2n+1)^2-1個)のGeohash文字列を返す:geohash_neighbour //integer to base32 function int_2_base32($v_in){ $v = (int)$v_in; if($v < 0 || $v > 31) return false; $base32 = '0123456789bcdefghjkmnpqrstuvwxyz'; $str = substr($base32, $v, 1); return $str

  • 1