De vorige versie van de postgres dump van 3D Bag was triangulated. Ik begrijp dat dat voor veel applicaties onhandig was.
Voor mijn applicatie (unity, de game engine) was dit echter ideaal. Ik kon de triangles van de gebouwen direct omzetten naar een mesh. Unity heeft geen mogelijkheid voor het weergeven van n-gons.
Hoe kan ik de polygonen in de nieuwe versie van 3D Bag weer versimpelen naar triangles?
Dit heb ik geprobeerd in postgis:
CREATE OR REPLACE FUNCTION tesselate_to_multipolygon(
geometry)
RETURNS geometry AS
$BODY$
SELECT ST_Collect(geom) AS geom
FROM (
SELECT ST_MakePolygon(ST_ExteriorRing((ST_Dump(ST_Tesselate($1))).geom)) AS geom) as geom_item;
$BODY$
LANGUAGE sql
select b.fid, tesselate_to_multipolygon(b.geometrie) as geom
from bag3d.lod22_3d b where fid = 17147742;
Wat resulteert in deze fout:
[XX000] ERROR: MultiPolygon is invalid : Polygon 1631 is invalid: points don't lie in the same plane : MULTIPOLYGON(((...