code: public static String encodeBase32(long i, int length) {
          char[] buf = new char[65];
          int charPos = 64;
          boolean negative = (i < 0);
          if (!negative)
              i = -i;
          while (i <= -32) {
              buf[charPos--] = characters[(int) (-(i % 32))];
              i /= 32;
          }
          buf[charPos] = characters[(int) (-i)];
          String result = padLeftWithZerosToLength(new String(buf, charPos,
                  (65 - charPos)), length);
          if (negative)
              return "-" + result;
          else
              return result;
      }
docs: Returns the base 32 encoding of the given length from a {@link Long}
  geohash.
  
  @param i
  the geohash
  @param length
  the length of the returned hash
  @return the string geohash