Как упростить линию с помощью 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 ответ
Чтобы упростить линию, сначала нужно ее иметь. Итак, сначала создайте свою LineString, используя createLineString(Coordinate[])
метод экземпляра GeometryFactory.
Затем просто используйте DouglasPeuckerSimplifier (вам не нужно сохранять топологию только для одной строки, начальная и конечная точки - все это топология, и они не будут изменены). Вам придется снова привести результат к LineString, если вы захотите использовать его как таковой позже. И вам придется выбрать подходящую толерантность.
LineString lss = (LineString) DouglasPeuckerSimplifier.simplify(ls, tolerance);