2016-04-13 7 views
0

Ich habe eine Funktion, die eine Transformation auf Punkte durchführt.Konvertieren von Satz oder Array von Punkten zu einem Polygon in PostgreSQL

Ich habe herausgefunden, wie man ein Polygon in eine Menge von Punkten umwandelt und jeden Punkt mit einer benutzerdefinierten Funktion umwandelt, die ich geschrieben habe. Aber ich kann nicht herausfinden, wie man die Punkte jetzt wieder in ein Polygon umwandelt.

Hier ist mein Code, der ein Array von transformierten Punkten zurückgibt. Wie bekomme ich ein Polygon davon?

SELECT array_agg(point_geotransform(point((dp).geom))) As p 
FROM (SELECT ST_DumpPoints(polygon(circle('((0,0),10)'))::geometry) AS dp 
     ) t; 

Ps. Wenn es einen effizienteren Weg gibt, die Punkte zu extrahieren, würde ich es gerne wissen.

Antwort

0

Das funktioniert (die Transformation ausgeschlossen, so dass andere sehen, es funktioniert):

SELECT polygon(circle('((0,0),10)')) p 
UNION ALL 
SELECT ST_MakePolygon(ST_MakeLine((point((dp).geom))::geometry))::polygon p 
FROM (SELECT ST_DumpPoints(polygon(circle('((0,0),10)'))::geometry) AS dp 
    ) t; 

Geometrie zu Polygon Geometrie und Polygon umgewandelt werden müssen, sozusagen.

Verwandte Themen