Given an EPSG:4326
lon,lat coordinate pair, and a radius
r in meters, I want to find the smallest set of H3 hexagons at resolution
res that completely covers the circle centered at
lon,lat with radius
The H3 library has a
polygon_to_cells function that returns the set of H3 cells with their center points inside a given polygon.
My current strategy (in Python because that's what I happen to be using) is to approximate a circle with a polygon, by "stepping" through forward azimuths from 0 to 360 degrees and computing the point that is
r distance away at each forward azimuth value. I am then using the
polygon_to_cells function on that circle-approximating polygon.
Based on some un-rigorous geometric intuition, it seems like if I set the buffer size to
r + (2 × res), then I should be able to cover every point in the original circle of radius
r with an H3 cell. If I want to find the "minimum" covering set, I can then loop over the resulting list of H3 cells and prune away any that do not intersect the original (approximated) circle.
However this approach seems very ad-hoc and unprincipled. Is there some better algorithm I can use?
Edit: It looks like H3 uses spherical coordinates with the WGS84 authalic radius (source), in case that helps.