У мене є таблиця постгігів ізоліній, яка визначена так:
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 і кожним створеним багатокутником, але я думаю, що це не правильний спосіб зробити це, і, безумовно, не швидко.