Страница 1 из 1

Уменьшить количество точек в полигоне

Добавлено: 17 апр 2009, 13:58
Vietnam
Здравствуйте!
Такая задача: есть полигон (озеро) состоящий из множества точек, требуется уменьшить количество этих точек (как бы сгладить), чтобы форма полигона осталась, но была менее детализированная.
К примеру как то убрать каждую вторую точку. Я думаю должен быть специальный инструмент с настройкой детализации.
Подскажите как быть..

Re: Уменьшить количество точек в полигоне

Добавлено: 17 апр 2009, 17:00
geologic
Сглаживание ГИС-полигонов для общего случая сплошных покрытий относится к категории "нерешенных". Однако, поскольку у вас отдельный контур, то не беда если топология нарушится - почините вручную.

Есть средства для удаления "лишних" узлов, т.е. только таких, которые лежат на прямых отрезках, а не в углах. Однако они малоэффективны, да и топологию все равно нарушают - в узлах могут реки стыковаться, например.

Re: Уменьшить количество точек в полигоне

Добавлено: 18 апр 2009, 01:10
hedgehog
В MapInfo 8.5 и выше.
1. Делаем редактируемым слой, в котором находится необходимый объект
2. Выделяем данный объект
3. Выбираем в меню Объекты->Совмещение и генерелизация. В появившемся окне выбираем второй пункт
4. Методом научного тыка определяем оптимальные цифры.

Re: Уменьшить количество точек в полигоне

Добавлено: 20 апр 2009, 17:59
Vietnam
Спасибо большое за советы, сидел на версии 9.0 и опции "Совмещение и генерелизация" не было, скачал версию 9.5 и вот она!! все сработало как нужно. Так, что скорей всего hedgehog ошибся верси, но все равно рахмет :D

Re: Уменьшить количество точек в полигоне

Добавлено: 21 апр 2009, 10:11
geologic
Не знал, что в девятке уже есть такое, тоже спасиб за разъяснение. Добавил тему в FAQ.

Re: Уменьшить количество точек в полигоне

Добавлено: 01 фев 2021, 11:27
Veronika_Coconut
Можно использовать Smooth geometry алгоритм через Processing Toolbox > QGIS geoalgorithms > Vector Geometry Tools, или как в моей версии это просто Векторная геометрия> Сглаживание. Там много опций.
Есть еще вариант превратить полигон в линию, а дальше воспользоватся утилитой Generalizer.