У меня есть следующий слой, используя SRID 27700 в Postgis:
Это каждый административный регион в Великобритании, и (как вы можете видеть из цветовой группировки) у каждого из них есть текстовое поле, в котором указывается округ, в котором они находятся.
То, что я хотел бы сделать, это сделать большие полигоны округа из меньших в данном округе, поэтому EG на рисунке выше всех полигонов цвета чирка сформировал бы один большой полигон из одного внешнего кольца, которое содержит все полисы в этом цвет, как и все остальные, фиолетовый, коричневый, розовый, серый и т. д. должен образовывать один многоугольник.
Я уже пробовал следующее:
insert into parishesmerged (geometry)
select astext(multi(ST_Union(the_geom))) as the_geom from parishes
group by county_name
Но он продолжает генерировать нарушенные геометрии, которые у меня потом возникают большие проблемы при дальнейшей обработке.
Я пытаюсь сделать более простую карту уровня округа с основными областями вывода в.
Любые решения тоже не обязательно должны быть в Postgis, у меня установлен полный стек OS4Geo, последняя версия QGis и больше утилит, чем я могу потрясти.
Единственные вещи, которых у меня нет, - это большие парни вроде ArcGis (хотя у меня где-то где-то валяется Old Mapinfo)
Напомним, что набор данных, который я пытаюсь создать, должен сопровождать книгу ГИС, которую я пишу, для программистов .NET, желающих писать ГИС-приложения с использованием .NET
Попробовав приведенные ниже предложения, лучше всего подошел вариант «Пола Рамсея».
Теперь у меня есть хороший упрощенный файл для округов и районов, который достаточно прост для моей книги, но достаточно сложен, чтобы позволить мне продемонстрировать некоторые интересные геопространственные SQL.
Несмотря на то, что решение Пола, в конечном счете, было тем, что сработало для меня, я также использовал другие ответы на такие вещи, как упрощение карты полигонов и дальнейшее снижение сложности.
Однако, кое-что я заметил при этом, хотя ST_Collect действительно быстрее, чем ST_Union, запуск для запуска также был главным образом причиной неисправных геометрий. Я предполагаю, что увеличение скорости достигается за счет меньшей точности в основной функции.
astext(multi())
части? Я просто исхожу из того, что вижу в других примерах PostGIS.