3

I'm starting with a caveat - I'm very new to this. I'm also using spectral tools in MS SQL Server, which probably isn't the best way either.

I'm attempting to make a polygon that represents an area where at any point along it's edge, a smaller polygon that is inside it is always fully encompassed by a radius of x. The reason I've used the term buffer is because that's kind of what I want, but instead of the buffer being to the nearest edge, I want it to the furthest edge.

I've explained that poorly I think. I want the smallest possible shape in which at any point inside it a radius of x would completely encompass a particular polygon.

So this is what I'm trying to get. The Blue area is my polygon, the Grey lines represent my desired radius (it's 150px in this case). I believe (but someone could prove me wrong) that at any point anywhere inside that dotted shape a Circle with a radius of 150px would completely encompass the blue shape.

But I can't work out how to draw that programmatically. enter image description here

3
  • 6
    can you draw a picture of what you want?
    – Ian Turton
    Aug 17 at 8:56
  • 1
    Are you limited to spectral tools, or could you use another software-solution?`
    – Vincé
    Aug 17 at 15:38
  • Are you looking for an algorithmic approach (step by step guide how to resolve this problem, software-indipendent) or for an actual implementation (code)? As an idea for a starting point: draw circles around each vertex of the polygon.
    – Babel
    Aug 17 at 20:22
3

An algorithmic solution:

  1. Extract vertices of your polygon (white dots).
  2. Draw circles of the desired distance around these vertices (red lines).
  3. Where all circles overlap is the area you're looking for (yellow area).

In QGIS, for this last step convert the circles to lines (Menu Vector / Geometry Tools/Polygons to lines), than use Menu Processing / Toolbox / Split with lines, splitting the circle-polygons with these lines.

enter image description here

1
  • 1
    Thank You so much! For anyone that cares, in SQL Server my steps were: - Create the Polygon - Create a While Loop in SQL that was N steps long (N being the number of points) - STBuffer my desired radius - STIntersection from the shape created on the previous run through my loop (first run through is just creating a circle, without the intersection command. Thank you so much for your help! Aug 18 at 6:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.