упрощение границ Великобритании нарушает геометрию или создает пробелы и перекрытия

#postgis

#postgis

Вопрос:

Я пытаюсь упростить округа, приходы и районы Великобритании и избежать разрывов и перекрытий, которые создают st_simplifyPreserveTopology, поэтому я следил за этой темой, я задавал разные похожие вопросы, такие как этот или этот, но не решил мою проблему или все еще нарушал геометрию.

т.е. первый подход

 with poly as (
        select name, (st_dump(geom)).* 
        from new_bdline_county
) select d.name, baz.geom 
 from ( 
        select (st_dump(st_polygonize(distinct geom))).geom as geom
        from (
                select (st_dump(st_simplifyPreserveTopology(st_linemerge(st_union(geom)), 10000))).geom as geom
                from (
                        select st_exteriorRing((st_dumpRings(geom)).geom) as geom
                        from poly
                ) as foo
        ) as bar
) as baz,
poly d
where st_intersects(d.geom, baz.geom)
and st_area(st_intersection(d.geom, baz.geom))/st_area(baz.geom) > 0.5;
 

получил эти результаты:

введите описание изображения здесь

то же самое с этим подходом:

Комментарии:

1. Доступны ли эти полигоны где-нибудь для скачивания? или еще лучше: можете ли вы поделиться инструкциями create table и insert вашего набора данных? Трудно увидеть проблему на таком маленьком изображении 🙂 приветствия

2. кстати, я пробовал этот запрос в наборе данных GADM, и, похоже, он работает. Можете ли вы также протестировать это?

3. @JimJones спасибо, я попробую этот запрос, наборы данных доступны в границах ОС