我有一个List<Coordinate>
代表一条路线。
我想使用 JTS 来简化它。
我看到的方法很少,但我不确定哪一种最适合我的需求:
1)如何将坐标转换为几何图形(线?)
TopologyPreservingSimplifier(Geometry inputGeom)
void setDistanceTolerance(double distanceTolerance)
Geometry getResultGeometry()
2)
DouglasPeuckerLineSimplifier(Coordinate[] pts)
void setDistanceTolerance(double distanceTolerance)
Coordinate[] simplify()
static Coordinate[] simplify(Coordinate[] pts, double distanceTolerance)
3)也许是这个?
TopologyPreservingSimplifier.simplify(geom, threshold-in-degrees-that-depends-on-the-length);
最佳答案
要简化一条线路,您首先必须有一条线路。因此,首先使用 GeometryFactory 实例的 createLineString(Cooperative[])
方法构建 LineString。
然后只需使用DouglasPeuckerSimplifier(您不需要仅保留一条线的拓扑,起点和终点都是那里的拓扑,并且不会改变)。如果您想稍后使用它,则必须再次将结果转换为 LineString。您必须选择适当的容差。
LineString lss = (LineString) DouglasPeuckerSimplifier.simplify(ls, tolerance);
关于java - 如何使用JTS简化线路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29330292/