java - 如何使用JTS简化线路?

标签 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);

最佳答案

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

然后只需使用DouglasPeuckerSimplifier(您不需要仅保留一条线的拓扑,起点和终点都是那里的拓扑,并且不会改变)。如果您想稍后使用它,则必须再次将结果转换为 LineString。您必须选择适当的容差。

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

关于java - 如何使用JTS简化线路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29330292/

相关文章:

html - 如何在 CSS 中绘制一个带有起始位置和结束位置(以度为单位)的圆形扇区

javascript - 在 Canvas 中绘制值的百分比。数学-Javascript

Javascript 确定一个点是位于由两点定义的直线上方还是下方

objective-c - 图形 - 我如何知道一条线是否在屏幕上可见(考虑到它的宽度)

iphone - 在 iPhone 中使用 OpenGL ES 画直线?

css - 使用 CSS 在 div 背景中绘制对 Angular 线

java - Mac 是否支持零复制原理

java - 单击其他任何位置时如何取消选择 JList?

java - 我正在运行 RMI 应用程序但没有安全管理器 : RMI class loader disabled exception comes

Java 播放声音片段时出现问题