Как получить LineString из Geometry (Geotools JTS)
У меня есть произвольный список отрезков, которые я хочу пересечь с окном просмотра. Как получить другой список отрезков, вырезанный из этого окна просмотра?
Предполагая, что область просмотра является квадратом. Любой данный сегмент линии может быть отброшен (если сегмент не пересекает область просмотра) или обрезан, если он пересекает область просмотра по крайней мере в 2 точках.
У меня есть это до сих пор:
public LineString [] intersectWithViewport
(Linestring[] input, double centerX, double centerY, double length) {
GeometryFactory gf = new GeometryFactory();
double halfLength = length / 2;
Coordinate upperLeft = new Coordinate(centerX - halfLength, centerY - halfLength);
Coordinate lowerLeft = new Coordinate(centerX - halfLength, centerY + halfLength);
Coordinate lowerRight = new Coordinate(centerX + halfLength, centerY + halfLength);
Coordinate upperRight = new Coordinate(centerX + halfLength, centerY - halfLength);
Coordinate[] viewPortCoords =
new Coordinate[]{upperLeft, lowerLeft, lowerRight, upperRight};
LinearRing lr = gf.createLinearRing(viewPortCoords);
Geometry viewPort = gf.createPolygon(lr, null);
Geometry segments = gf.createMultiLineString(input);
Geometry intersection = segments.intersection(viewPort);
...
}
Как мне получить LineStrings
от intersection
геометрия?