Hashfill is a library for computing the set of geohashes which are contained by a geofence. It can either produce a set
of hashes which are completely contained or one which also includes where the boundaries intersect. It currently operates on
geom.Polygon objects from the https://github.com/twpayne/go-geom pacakge. Converting from geojson is simple and this
package may offer a utility in the future.
geofence := readFileAsGeometry("testdata/regents.geojson") filler := hashfill.NewRecursiveFiller( hashfill.WithMaxPrecision(8), ) hashes, err := filler.Fill(geofence, hashfill.FillIntersects)
Would result in something that could be visualized as:
WithMaxPrecision- Sets the max hash precision the algorithm will generate hashes for.
WithFixedPrecision- Causes the fully contained geohashes to still be divided into the hashes of the max precision.
WithPredicates- Can be used to supply your own functions for
Containsrather than the built in ones.
-  Fix bug in geofences with holes.
-  Corner based check optimisations (+ hybrid)
-  Cache poly to geom operation in predicates.
-  Add benchmarks