как упростить линию с помощью 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);


person Elad Benda    schedule 29.03.2015    source источник


Ответы (1)


Чтобы упростить линию, вам сначала нужно ее иметь. Итак, сначала создайте LineString, используя метод createLineString(Coordinate[]) экземпляра GeometryFactory.

Затем просто используйте DouglasPeuckerSimplifier (вам не нужно сохранять топологию только для одной линии, начальная и конечная точки — это вся топология, и они не будут изменены). Вам придется снова привести результат к LineString, если вы хотите использовать его как таковой позже. И вам придется выбрать соответствующий допуск.

LineString lss = (LineString) DouglasPeuckerSimplifier.simplify(ls, tolerance);
person bugmenot123    schedule 04.05.2015