У меня есть многоугольник Shapefile, который мне нужно обобщить. Как я могу обобщить полигоны и убедиться, что нет топологических ошибок, таких как «осколки».
Я уже попробовал:
- Вектор -> Инструменты геометрии -> полигоны к линиям
- Vector -> Geometry Tools -> упрощенные геометрии ... здесь я уже вижу на экране, что я создаю перекрытия и промежутки, тем не менее теперь я пытаюсь
- Вектор -> Инструменты геометрии -> линии в полигоны
а вот программа показывает ошибку и вылетает
Ответы:
GRASS учитывает топологию. Вы можете использовать v.generalize из набора инструментов Обработка, чтобы упростить полигоны, и если входные данные топологически корректны, то и результат будет.
источник
Это можно рассматривать как предварительный ответ @ Underdark, согласно которому вы можете очистить топологию векторного слоя перед обобщением. GRASS имеет функцию v.clean, которая содержит ряд инструментов для восстановления слоя, таких как:
и различные другие, показанные на изображении ниже:
Вы также можете установить порог в зависимости от того, насколько чувствительными вы хотите, чтобы инструменты запускались. Лично я склонен использовать функцию Проверить правильность геометрии в QGIS ( Вектор > Инструменты геометрии > Проверить правильность геометрии ), чтобы проверить наличие ошибок и, если они есть, использовать соответствующий инструмент в v.clean . После того, как ошибки будут устранены, вы сможете лучше обобщать.
Надеюсь это поможет!
источник
Вы пробовали использовать MapShaper ? Я обнаружил, что это хороший способ обобщения многоугольников; есть также автономная версия, если вы хотите скачать код.
Альтернативой может быть преобразование этого в GeoJson, а затем TopoJson, который поддерживает «упрощение форм с сохранением топологии» https://github.com/mbostock/topojson
источник
Я только что провел быструю проверку, и инструмент «Упростить геометрию» в меню «Вектор», по-видимому, учитывает топологию. Я пробовал с и без «Включить топологическое редактирование», отмеченный в разделе «Параметры привязки». Вы пробовали это?
РЕДАКТИРОВАТЬ: Это было сделано непосредственно в файле многоугольника - зачем вам сначала конвертировать в строки?
источник
Существует та же дискуссия здесь , мой окончательный ответ в том , что SAGA делает работу для вас.
источник