public static final String stringEncode(final double lon,final double lat,final int level){
  final long hashedVal=BitUtil.flipFlop(XGeoUtils.mortonHash(lon,lat));
  StringBuilder geoHash=new StringBuilder();
  short precision=0;
  final short msf=(XGeoUtils.BITS << 1) - 5;
  long mask=31L << msf;
  do {
    geoHash.append(BASE_32[(int)((mask & hashedVal) >>> (msf - (precision * 5)))]);
    mask>>>=5;
  }
 while (++precision < level);
  return geoHash.toString();
}

public static final String stringEncode ( final double lon , final double lat , final int level ) { final long hashedVal = BitUtil . flipFlop ( XGeoUtils . mortonHash ( lon , lat ) ) ; StringBuilder geoHash = new StringBuilder ( ) ; short precision = 0 ; final short msf = ( XGeoUtils . BITS << 1 ) - 5 ; long mask = 31L << msf ; do { geoHash . append ( BASE_32 [ ( int ) ( ( mask & hashedVal ) > > > ( msf - ( precision * 5 ) ) ) ] ) ; mask >>>= 5 ; } while ( ++ precision < level ) ; return geoHash . toString ( ) ; }
encode to a level specific geohash string from full resolution longitude , latitude
