jts icon indicating copy to clipboard operation
jts copied to clipboard

Unnecessary Interior Ring Disrupting Inner Line Coordinates in Variable Buffer Operation

Open Alison-97 opened this issue 2 years ago • 0 comments

Description

I am encountering an issue with the Variable Buffer class. Specifically, I am working with an open LineString. Given that the LineString is open and does not intersect itself, the buffer operation should yield a simple polygon without any interior rings (holes). However, in the current implementation, the resulting polygon contains an unnecessary interior ring. This is causing a disruption in the order of the resulting polygon coordinates.

Steps to Reproduce

Here's the .Net code to reproduce the issue:

public void Test()
        {
            var coordinates = new Coordinate[]
            {
                new Coordinate(200         ,   91.37371939),
                new Coordinate(199.9906516 ,   71.396149),
                new Coordinate(199.925198  ,   66.39682954),
                new Coordinate(135.4977781 ,   0.125906357),
                new Coordinate(56.41194182 ,   0.598175835),
                new Coordinate(0.024520295 ,   69.50077743),
                new Coordinate(0.000508719 ,   74.50086084),
                new Coordinate(6.22E-22    ,   76.39546845),
            };
            double[] widths = new double[]
            {
                5.4573551091373282,
                5.5548897583660466,
                5.5793006151088935,
                6.0919286067086738,
                6.4781230068945561,
                6.96634014175149,
                6.9907509984943372,
                7,
            };

            var innerLine = new LineString(coordinates);

            var variableBuffer = new VariableBuffer(innerLine, widths);
            var completeBuffer = variableBuffer.GetResult();

        }

This is a plot of the inner line coordinates. image

Alison-97 avatar Aug 14 '23 06:08 Alison-97