В настоящее время я использую данные о зданиях из Vectormap District Ordnance Survey и заметил, что многие строительные полигоны разделены на 2 из-за того, как ОС разделяет шейп-файл.
Вот что я вижу в QGIS - я выделил некоторые из зданий, разделенных на границе плитки:
Я не могу вручную объединить здания, так как их слишком много, которые были разбиты на границах (это просто увеличенный пример). Я ищу автоматический способ решить эту проблему.
К сожалению, каждая сторона разделенных зданий имеет разные идентификаторы, поэтому я не могу их легко распустить.
Как бы вы предложили, чтобы я мог автоматически объединять строительные плитки?
редактировать
Сейчас я использую PostGIS для объединения полигонов, разделенных на границах плиток. Вот оператор SQL, который делает это для меня - это во много, много раз быстрее, чем делать это с QGIS:
DROP TABLE merged;
CREATE TABLE merged AS
SELECT
-- Merge polygons that are within 0.01 metres of each other
(ST_Dump(ST_Union(ST_Buffer(the_geom, 0.01)))).geom AS the_geom
FROM unmerged;
-- Update the geometry_columns table
SELECT Populate_Geometry_Columns();
Ответы:
Если вы просто хотите слить грани и довольны наличием одной большой многоугольной функции для всех зданий, вы можете просто использовать инструмент fTools «Dissolve» («Вектор / Геообработка / Растворение»).
Если вы хотите сохранить атрибуты (в случае вектора ОС, который будет только идентификатором, который выглядит довольно произвольно), вы можете разделить слой растворенного вектора и затем назначить атрибуты исходного нерастворенного слоя, используя «Атрибуты соединения». по местоположению ":
Это подмножество двух шейп-файлов зданий ОС, которые были объединены в один шейп-файл с использованием «Вектор / Управление данными / Слияние шейп-файлов в один». Цвета назначаются случайным образом, чтобы показать отдельные особенности:
Это результат инструмента «Растворение»: все объекты были объединены в один объект с идентификатором первого объекта, разрыв в трех центральных зданиях пропал:
После разделения объекта с помощью «Вектор / Геометрия / Составной элемент на отдельные части» здания снова становятся отдельными объектами, но все они имеют одинаковый идентификатор:
Запустив «Вектор / Инструменты управления данными / Объединить атрибуты по местоположению» с разделенным слоем в качестве цели и исходным объединенным слоем в качестве векторного слоя объединения, зданиям будут присвоены их индивидуальные идентификаторы:
источник
v.dissolve
после присвоения всем объектам некоторого идентичного фиктивного атрибута, только те, которые имеют общую границу, будут объединены вместе.