Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
ST_ MakePolygon
ST_ ha due varianti MakePolygon che restituiscono un poligono. Una variante utilizza una singola geometria mentre l'altra ne utilizza due.
L'input della prima variante è una linestring che definisce l'anello esterno del poligono di output.
L'input della seconda variante è una linestring e un multilinestring. Entrambi sono vuoti o chiusi.
Il limite dell'anello esterno del poligono di output è la linestring di ingresso, mentre i confini degli anelli interni del poligono sono le linestring nel multilinestring di input. Se la linestring di input è vuota, viene restituito un poligono vuoto. Le linestring vuote nel multilinestring non vengono prese in considerazione. Il valore dell'identificatore del sistema di riferimento spaziale (SRID) della geometria risultante è il valore SRID comune delle due geometrie di input.
La dimensione della geometria restituita è la stessa delle geometrie di input. L'anello esterno e gli anelli interni devono avere la stessa dimensione.
Sintassi
ST_MakePolygon(geom1)
ST_MakePolygon(geom1, geom2)
Argomenti
- geom1
-
Un valore di tipo
GEOMETRYo un'espressione che restituisce un valore di tipoGEOMETRY. Questo sottotipo deve essereLINESTRING. Il valore di tipo linestring deve essere chiuso o vuoto. - geom2
-
Un valore di tipo
GEOMETRYo un'espressione che restituisce un valore di tipoGEOMETRY. Questo sottotipo deve essereMULTILINESTRING.
Tipo restituito
GEOMETRY di sottotipo POLYGON.
L'identificatore del sistema di riferimento spaziale (SRID) della geometria restituita è uguale allo SRID degli input.
Se geom1 o geom2 sono null, allora viene restituito il valore null.
Se geom1 non è una linestring, allora viene restituito un errore.
Se geom2 non è un multilinestring, allora viene restituito un errore.
Se geom1 non è chiuso, allora viene restituito un errore.
Se geom1 è un singolo punto o non è chiuso, allora viene restituito un errore.
Se geom2 contiene almeno una linestring con un singolo punto o non è chiusa, allora viene restituito un errore.
Se geom1 e geom2 presentano valori SRID diversi, allora viene restituito un errore.
Se geom1 e geom2 hanno dimensioni diverse, allora viene restituito un errore.
Esempi
Il seguente comando SQL restituisce un poligono a partire da una linestring in input
SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')));
st_astext
---------------
POLYGON((77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07))
Il seguente SQL crea un poligono da una linestring chiusa e un multilinestring chiuso. La linestring viene utilizzata per l'anello esterno del poligono. I linestring nei multilinestring sono utilizzati per gli anelli interni del poligono.
SELECT ST_AsEWKT(ST_MakePolygon(ST_GeomFromText('LINESTRING(0 0,10 0,10 10,0 10,0 0)'), ST_GeomFromText('MULTILINESTRING((1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))')));
st_astext
----------------------------------
POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))