ビューポートと交差させたい線分の任意のリストがあります。そのビューポートからクリップされた線分の別のリストを取得する方法は何ですか。
ビューポートが正方形であると仮定します。任意の線分を破棄するか (線分がビューポートと交差しない場合)、少なくとも 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