如何使用JTS简化线?

时间:2015-03-29 14:24:57

标签: java geometry line coordinates jts

我有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);

1 个答案:

答案 0 :(得分:0)

要简化一条线,首先必须拥有一条线。因此,首先使用GeometryFactory实例的createLineString(Coordinate[])方法构建LineString。

然后只使用DouglasPeuckerSimplifier(您不需要仅为一行保留拓扑,起点和终点都是那里的拓扑,它们不会被更改)。如果要稍后使用它,则必须再次将结果转换为LineString。你必须选择合适的公差。

LineString lss = (LineString) DouglasPeuckerSimplifier.simplify(ls, tolerance);