Упростить список сегментов с помощью JTS - PullRequest
0 голосов
/ 18 апреля 2020

Я тестирую библиотеку JTS (Java Topology Suite), чтобы узнать, смогу ли я упростить список сегментов. Правда в том, что я очень мало знаю об этой библиотеке, и я новичок в программировании, поэтому я не знаю, возможно ли то, чего я пытаюсь достичь.

То, что я хочу, это преобразовать MULTILINESTRING список, подобный следующему:

MULTILINESTRING ((0 0, 50 50), (50 50, 100 100, 150 50), (50 150, 100 100, 150 150), (20 20, 80 80), (40 160, 70 130), (110 110, 140 140))

В это:

MULTILINESTRING ((40 160, 150 50), (0 0, 150 150))

Другими словами, я хочу получить список с максимальными сегментами в терминах длины. Возможно ли осуществить это преобразование, и если да, то как?

Большое спасибо.

1 Ответ

0 голосов
/ 21 апреля 2020

Невозможно получить ответ, который вы предлагаете, чисто методами JTS. Самое близкое, что вы можете получить, это:

  • узлом линии, используя Geometry.union()
  • , объединение узловой линии, используя LineMerger
  • , упрощение линии, используя DouglasPeuckerSimplifier используя небольшой допуск

Это даст вам:

MULTILINESTRING ((0 0, 100 100), (40 160, 100 100), (100 100, 150 150), (100 100, 150 50))
...