У мене є таблиця постгігів ізоліній, яка визначена так:
CREATE TABLE myisolines
(
gid serial NOT NULL,
isotime timestamp without timezone,
val numeric(10,4),
geom geometry(LineString,4326)
);
Візуально цей об'єкт рядкових рядків виглядає приблизно так:

Я знаю просторовий обсяг моїх даних, тому я можу додати Bbox, тому LineStrings може бути як би закритим.

Я хочу створити таблицю ізополігонів myisopolygonsіз myisolinesтаблиці, з багатокутниками, яка не перекриватиметься, а створюватиме суцільну поверхню і мати стовпчик valз найнижчою valкількістю ізоліній, з якого утворився багатокутник. Я розумію, що це може формуватися з самозакритого ізоліну (острова) або ізолінії, закритого bbox, у такому випадку valслід брати саме з цього конкретного ізоліну. Візуально це повинно виглядати так:

Я думав, що я можу якось створити топологію, а потім перетворити обличчя на багатокутники, але не розумію, як це зробити правильно. Як це можна зробити?
Іншим варіантом було б рекурсивно використовувати функцію різниці між bbox і кожним створеним багатокутником, але я думаю, що це не правильний спосіб зробити це, і, безумовно, не швидко.