I know that question may be a bit outdated but recently I got a similar problem with covering geographic area with equal circles using hexagonal grid and this is how I solved it:
- my input data were radius of circle given in meters and coordinates of borders of the area
- first I found the bounds rectangle that covers given area
- then starting from the left bottom I move the point by distance equaling double the height of the triangle used to build the hexagon (its side is the same of radius of my circle) and bearing of 0 degrees using Vincenty's formulae
- for each point I found, I check if it intersects with my input area, if does I save it, other way I skip it
- when I got to the edge I do one more check to ensure that I will get all points within the are
- I move the point by bearing of 60 degrees, check it, then by 120 degrees, check again
- go back to 3rd step but now I move the points by bearing of 180 degrees
- and the edge again one more check and then like in step 6th but first 120 degrees then 60 degrees
- continue until you got to the top edge of rectangle
like in given image, of course you can increase the accuracy by decreasing radius of circle
I know that this is not the best option but it works pretty well for me.
I hope it's quite understandable and will help anyone.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…