J'ai une table une table postgis d'isolignes qui est définie comme ceci:
CREATE TABLE myisolines
(
gid serial NOT NULL,
isotime timestamp without timezone,
val numeric(10,4),
geom geometry(LineString,4326)
);
Visuellement, ces objets linestring ressemblent à ceci:
Je connais l'étendue spatiale de mes données, donc je peux ajouter une Bbox, donc les LineStrings peuvent être en quelque sorte fermées.
Je veux créer une table d'isopolygones à myisopolygons
partir d'une myisolines
table, avec des polygones, qui ne se chevaucheront pas mais créeront une surface continue et auront une colonne val
avec le plus bas val
d'isolignes, à partir duquel le polygone a été formé. Je comprends qu'il peut être formé à partir d'isoline auto-fermée (îlot), ou d'isoline fermée avec bbox, dans ce cas, le val
doit être pris à partir de cette isoline particulière. Visuellement, cela devrait ressembler à ceci:
J'ai pensé que je pouvais créer la topologie d'une manière ou d'une autre, puis transformer des faces en polygones, mais je ne comprends pas comment le faire correctement. Comment cela peut-il être fait?
Une autre option serait d'utiliser récursivement une fonction de différence entre bbox et chaque polygone créé, mais je suppose que ce n'est pas la bonne façon de le faire, et certainement pas rapide du tout.