如何从几何中获取LineString(Geotools JTS)

时间:2012-11-10 22:18:28

标签: java maps gis 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

0 个答案:

没有答案