class FakeRedis::GeoSet::Point

def geohash(precision = 10)

def geohash(precision = 10)
  latlon = [@lat, @lon]
  ranges = [[-90.0, 90.0], [-180.0, 180.0]]
  coordinate = 1
  (0...precision).map do
    index = 0 # index into base32 map
    5.times do |bit|
      mid = (ranges[coordinate][0] + ranges[coordinate][1]) / 2
      if latlon[coordinate] >= mid
        index = index * 2 + 1
        ranges[coordinate][0] = mid
      else
        index *= 2
        ranges[coordinate][1] = mid
      end
      coordinate ^= 1
    end
    BASE32[index]
  end.join
end