Replies: 6 comments
-
Hi @asindl You might want to take a look at the It currently doesn't work with LineString's but from memory the underlying algorithm could be extended to support that. And there is probably other algorithms out there for smoothing which might output slightly different shapes - as there isn't really one 'correct' output, it just depends a bit on what you're expecting. Hope that helps |
Beta Was this translation helpful? Give feedback.
-
Thanks, @rowanwins. |
Beta Was this translation helpful? Give feedback.
-
It is possible to achieve this with multiple buffer operations. const feature: Feature = …
const cornerRadius = 8;
// 1. increase geometry by radius without smoothing
feature.geometry = turf.buffer(feature.geometry, cornerRadius, { steps: 0 }).geometry;
// 2. decrease it by doubled radius with smoothing
feature.geometry = turf.buffer(feature.geometry, -(cornerRadius * 2), { steps: 8 }).geometry;
// 3. finally increase geometry again by radius with smoothing
feature.geometry = turf.buffer(feature.geometry, cornerRadius, { steps: 8 }).geometry; Maybe this logic could get wraped into a default function. |
Beta Was this translation helpful? Give feedback.
-
@deflectn this might be enough justification for us to start a "tips and techniques" section on the website. |
Beta Was this translation helpful? Give feedback.
-
Or perhaps @deflectn would you like to put together a PR for a new roundCorners module? |
Beta Was this translation helpful? Give feedback.
-
Probably I could schedule it for Christmas time. 😉 |
Beta Was this translation helpful? Give feedback.
-
Hi there,
I am looking for an easy to use way to round corners of linestrings or polygons. Similar to the bezierSpline function, one could apply the "roundCorner" function to a linestring or polygon with a defined radius in the options which would then return the linestring/polygon with rounded corners.
Is that a meaningful feature for turf?
Beta Was this translation helpful? Give feedback.
All reactions