It is a hierarchical spatial data structure which subdivides space into buckets of grid shape.
This is a fascinating idea. Geohash is a hash of longitude and latitude values of a given location, that has an interesting property. Geohash values of nearby locations share the same first several characters of the hash, and therefore can be used to find neighboring places.
For instance, for a location (39.9509, -105.147) in Superior, Colorado, the Geohash is 9xj5r2f6c7, and for a location (40.015, -105.271) in Boulder, Colorado, the Geohash is 9xj5skxbrb. These locations are approximately 12.5 km apart, and their geohashes match up to the fourth character. So, if the Geohash values of a number of locations are sorted, all the neighboring locations will be next to each other. This works in most places except those around the equator
But there is a catch. The truncated geohash does not imply that it is at/near the center of the bounding box containing all the locations that share the same truncated hash values. For example, the truncated hash 9xj5, resolves to a location (39.99023, -105.29297), which is farther to the west of both (39.9509, -105.147) and (40.015, -105.271). Nonetheless, this is a nice idea, and has interesting applications.
