Ищете стратегии обобщения для построения контуров в PostGIS?
22
У меня есть набор данных о строительных отпечатках, векторизованных из набора растровых данных. В настоящее время набор данных является просто векторным представлением растровых данных. Я хотел бы, чтобы набор данных многоугольника имел только вершины в углах здания. Я пытался использовать команду Simplify в PostGIS с ограниченным успехом.
Есть много алгоритмов, предназначенных для упрощения построения. Вы можете взглянуть на этот сайт для обзора. Смотрите также этот вопрос . Вы можете использовать:
Упрощение построения контура: оно заключается в рекурсивном удалении слишком коротких краев контура и удлинении соседних краев. Пример:
Алгоритм наименьшего окружающего прямоугольника: он состоит в замене геометрии здания на наименьший окружающий прямоугольник. Этот прямоугольник также можно масштабировать до начальной области здания. Пример:
Алгоритм возведения в квадрат: он заключается в применении легкого поворота к краям, чтобы углы были идеально квадратными. Пример:
Этих трансформаций может быть достаточно для ваших нужд. Может быть интересно объединить их.
Я почти на 100% уверен, что ни один из этих алгоритмов не реализован в PostGIS. Некоторые из них реализованы в Java-библиотеке Opencarto, которую я разрабатываю. Дайте мне знать, если вы хотите проверить это!
Можете ли вы дать краткое объяснение того, на какие алгоритмы вы ссылаетесь в Opencarto для упомянутого «Упрощения построения контура». Я не мог найти прямую информацию в вики или код в Opencarto.
«Если мы буферизируем большим количеством, а затем реверсируем буфер на то же количество, мы получим нечто, похожее на оригинальное, но без извилистых битов».
это интересный подход, и он кажется относительно эффективным. Спасибо за указатель, это то, что я смогу использовать. Ваш ответ был бы лучше, если бы он содержал простую фразу, содержащую основную идею, на которую ссылаются, а не просто ссылку.
Избегает создания производных геометрий (в частности, многоугольников), которые являются недействительными http://www.postgis.org/documentation/manual-1.5SVN/ST_SimplifyPreserveTopology.html
должен быть лучше, чем Simplify
сначала проверьте свою геометрию, а затем
ST_IsSimple(geometry geomA);
источник
Нечто подобное может сработать:
http://blog.opengeo.org/2010/11/22/removing-complexities/
источник