Geohashes provide a well tested method of parcelling the worlds surface into smaller and smaller discrete areas.
When dealing with geospacial data I often find myself returning to them as an elegant and simple technique of implementing searches against the data. There are enough articles out there on how they are created or how to use them for searching so I will not replicate those.
Unfortunately all of the GeoHash exploration tools I could find have been hobbled by the 2018 Google Maps API changes and now display only the "for development purpouses only" map layer.
Here is my basic OpenLayers/OpenStreetMap implementation based around the chrisveness/latlon-geohash library.
- Easy sharding.
- No need to reinvent the wheel - dividing the world up is surprising difficult and geohash encoding/decoding code will likely already exist in your language.
- Easily human readable - debugging 'sp3q' is much easier than 2 coordinate pairs.
- They are just strings, so use them in whatever stack you are used to storing/processing data in.
- Avoids/minimises the use of (usually) slow geospacial functions. Who you going to call when your ST_CONTAINS() is slow and an EXPLAIN shows its already using an index...