我有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);
答案 0 :(得分:0)
要简化一条线,首先必须拥有一条线。因此,首先使用GeometryFactory实例的createLineString(Coordinate[])
方法构建LineString。
然后只使用DouglasPeuckerSimplifier(您不需要仅为一行保留拓扑,起点和终点都是那里的拓扑,它们不会被更改)。如果要稍后使用它,则必须再次将结果转换为LineString。你必须选择合适的公差。
LineString lss = (LineString) DouglasPeuckerSimplifier.simplify(ls, tolerance);