Skip to main content

I have points contained by polygons. I want to buffer these with a spesific buffer of 2500 square meters. And I want these buffers to not cross or expand outside of the polygon.

I need apply this to a lot of points with a single operation.

The polygons look like this (there are hundreds in the project), and you can see the points inside:

Skjermbilde 2023-12-11 130613Skjermbilde 2023-12-11 130638This is how I want it to look (the shape of the buffer is customized to the polygon): 

Skjermbilde 2023-12-11 130655I got some help help here previously: Buffer/expand point contained inside another polygon

But this method does not work on irregular polygons. It only works on squares.

I think the printscreens are missing and essential, because I do not understand your question.


I think the printscreens are missing and essential, because I do not understand your question.

Fixed it now

 


I think we need a better explanation of the buffer. If the buffer should be 2500m, and the buffer should be square, how are you measuring the distance? Are you measuring 2500m to each corner of the square? If so, how should the square be oriented? The square buffer doesn't jive with the screenshots of your desired result, so it's a bit confusing.

 

That's one hurdle. The second hurdle I think will be a little easier once you have your buffers built. You would feed your polygons and buffers into the Clipper transformer. The polygons would be your Clipper, and the buffers would be the Clippee. You desired result would be output from the Inside port.


I think we need a better explanation of the buffer. If the buffer should be 2500m, and the buffer should be square, how are you measuring the distance? Are you measuring 2500m to each corner of the square? If so, how should the square be oriented? The square buffer doesn't jive with the screenshots of your desired result, so it's a bit confusing.

 

That's one hurdle. The second hurdle I think will be a little easier once you have your buffers built. You would feed your polygons and buffers into the Clipper transformer. The polygons would be your Clipper, and the buffers would be the Clippee. You desired result would be output from the Inside port.

My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.


My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

If that's the case, your workflow would look something like this:

imageEDIT: Just saw where you said square meters as the total area. You would need to calculate the radius of the buffer based on 2500sq meters using A=πr^2. So the number you feed into the buffer would be roughly 28.284m.

 

But of course, that's the area before you clip the buffer to the polygons. Not sure you would be able to get a finalized area of 2500m^2, since you wouldn't know how much is outside the polygons.

 


My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

This is the conundrum. To adapt the buffer within the polygon. It is possible ref: the link I posted. But how we do it to all kinds of polygons, is not clear to me.

 

 


My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

@larsanders1997​, this might be a tough one to do with FME alone. Throwing out one idea here. Building off of @dustin​'s ideas above, if the clipped buffers are less than 2500 sq. meters, create a process to iterate /loop them through the following:

  • Create a buffer with a Buffer Distance of
  • Clip the buffer polygon to the boundary
  • Calculate the Area of the resulting buffer
  • If the polygon is less than 2500 sq. meters, repeat.

Let us know if you have any luck.


My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

Maybe the MultiBufferer from FME Hub can be of help here.


Reply