Java: Как преобразовать несколько строк в многоугольник - PullRequest
0 голосов
/ 15 мая 2018

Я получил две контурные линии в некоторой области каньона, но они не закрылись. Очевидно, они представляют область результата. Как я могу закрыть их по коду?

Скажем, две линейные строки, как

    LineString lineString1 = geometryFactory.createLineString(new Coordinate[]{
            new Coordinate(0, 0),
            new Coordinate(10, 0)
    });

    LineString lineString2 = geometryFactory.createLineString(new Coordinate[]{
            new Coordinate(0, 2),
            new Coordinate(10, 2)
    });

    List<LineString> lineStrings = Arrays.asList(lineString1, lineString2);
    Geometry geometry = geometryFactory.buildGeometry(lineStrings);
    // MULTILINESTRING ((0 0, 10 0), (0 2, 10 2))

    Geometry union = geometry.union();
    // MULTILINESTRING ((0 0, 10 0), (0 2, 10 2))

    LinearRing linearRing = geometryFactory.createLinearRing(geometry.getCoordinates());
    // Exception: Points of LinearRing do not form a closed linestring

Как мне получить результат

LINESTRING ((0 0, 10 0, 10 2, 0 2, 0 0))

Любая помощь приветствуется.

...