The correct solution is to use an isochrone rather than a basic radius search. Or to simply sort all the shores within the max search radius using a vehicle routing library/api.
That doesn’t work at scale unless you have an api with unlimited request throughput or knowledge of where water is (again needing access to the raw map or unlimited api access). In this case, the stores had to mark their own masks on the map.