Как объединить мультиполигоны нескольких областей, убрав внутренние области?

Всем добрый день!

На проекте используем данные с openStreetMaps

Столкнулись со следующей проблемой:
Для одного из заказчиков нужно реализовать границы по их условиям, отличным от разделения на области. (объединить несколько областей в одну и т.д.)

Вопрос:
Как объединить мультиполигоны нескольких областей, исключив полигоны, где они пересекаются?
(т.е. при объединении Москвы и Московской области нужно получить мультиполигон, из которого исключена граница между Москвой и Московской областью)

На данный момент, мы получаем мультиполигоны отдельных областей по следующему алгоритму:

  1. Узнаём номер отношения города или области на сайте Relation: ‪Москва‬ (‪2555133‬) | OpenStreetMap

  2. Заходим на сайт https://polygons.openstreetmap.fr/ и выгружаем мультиполигон по номеру отношения.

Кладём у себя границы в следующем виде (упрощенный пример)
ST_GeomFromText(‘MULTIPOLYGON(((31.1590963 46.4096817,31.1607232 46.4093543 )))’,4326)

Объединение геометрий: ST_Union

Для исключения внутренних областей см. ST_ExteriorRing и ST_MakePolygon

Спасибо!

Правильно я понимаю, что нужно установить Postgre, postgis
И в базе данных объединять мультиполигоны, используя функции?