Skip to main content

How to buffer a line with different distances on the left and right side?

The question is about road centrelines, where buffer needs to have different distances from centre line on left and right side.

Ooof, I remember I made a custom transformer for that a long time ago. So I looked it up and that turns out to have been 2007…

I want to update it (it’s from before the time where Workbench saved the last save date/build info into the file...) but it’ll be a few days until I get around to it.

What I did, in broad terms was:

  • Create two buffers around the line with the widths you require
  • Use the Labeller to place a label “left” on the left side and “right” on the right side
  • Extend the original line
  • Intersect the buffers with the extended line
  • Create new areas and then only keep the ones that correspond with the label value

Hope this helps, in the meantime I’ll see about updating that custom transformer and getting it published on the FME Hub


I would think to use the OffsetCurveGenerator. And then the easiest way I think would be to Offset to one side so the centerline is at the center of your new buffer. And then buffer.

But you could also offset both directions and use that lines to clip a larger buffer to the correct size?


Reply