Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jts-dev] Rebust buffer and offset curve implementations

Hello everyone, and thanks for the amazing library!
Just like many other GIS specialists, I'm a long-time consumer of the JTS library, or rather its derivative, GEOS. I recently needed to produce many parallel offsets (offset curves) and discovered artefacts that are sometimes produced using this algorithm. I looked through the issues and it seems as a prevalent bug along with other issues (e.g. #178#739 or #575 in Shapely along others).

Intrigued, I started to look into how buffers and offset curves are produced and did some reading on Minkowski sums, which are the basis of buffer generation, e.g. the CGAL library. I think some of these issues could be solved with a more robust buffer implementation that would involve a convolution approach. This should produce higher quality results without the need for geometry simplification while being robust. The algorithm was described by Alon Baram [1] and implemented in CGAL.

I'm concerned about the efficiency of said approach as any overhead and drop in the algorithm performance is highly undesirable due to the extensive usage of buffering in many applications. I'm still researching the topic, but it's my understanding that in the ECG (Exact geometry computation) paradigm, performance-heavy calculations are only done when additional precision is needed (e.g. an operation might produce incorrect results).

I don't use Java, so I'm not sure if I could meet the standards of the JTS library, but I would be certainly interested in contributing to a more robust buffer implementation. Please, let me know if you consider this a worthwhile contribution and if you're interested in my cooperation on this.

[1] Baram, Alon, et al. "Exact Minkowski sums of polygons with holes." Computational Geometry 73 (2018): 46-56.

Thank you, and have a great day!
Simon Leitgeb

Back to the top