Nome

ST_BoundingDiagonal — Restituisce la diagonale del rettangolo di confine di una geometria.

Sinossi

geometry ST_BoundingDiagonal(geometry geom, boolean fits=false);

Descrizione

Restituisce la diagonale del rettangolo di selezione della geometria fornita come una LineString. La diagonale è una LineString a 2 punti con i valori minimi di ciascuna dimensione nel punto iniziale e i valori massimi nel punto finale. Se la geometria di input è vuota, la diagonale è una LINESTRING EMPTY.

Il parametro opzionale fits specifica se è necessario il miglior adattamento. Se false, può essere accettata la diagonale di un rettangolo di selezione un po' più grande (che è più veloce da calcolare per geometrie con molti vertici). In entrambi i casi, il rettangolo di selezione della linea diagonale restituita copre sempre la geometria in ingresso.

La geometria restituita conserva il SRID e la dimensionalità (presenza di Z e M) della geometria di input.

[Nota]

Nei casi degenerati (cioè con un solo vertice in ingresso) la linestring restituita sarà formalmente non valida (nessun interno). Il risultato è comunque topologicamente valido.

Disponibilità: 2.2.0

Questa funzione supporta il 3d e non distrugge gli z-index.

Questa funzione supporta le coordinate M.

Esempi

This example shows a polygon together with the diagonal of its bounding box.

Code
WITH input AS (
  SELECT 'POLYGON((10 20,30 60,70 40,90 10,50 -10,10 20))'::geometry AS geom
)
SELECT geom AS input_polygon,
       ST_BoundingDiagonal(geom) AS diagonal
FROM input;
Output
POLYGON((10 20,30 60,70 40,90 10,50 -10,10 20)) | LINESTRING(10 -10,90 60)
Figure
Geometry figure for visual-st-boundingdiagonal-01

This example returns the minimum X coordinate of a buffer around a point.

Code
SELECT ST_X(ST_StartPoint(ST_BoundingDiagonal(
  ST_Buffer(ST_Point(0, 0), 10)
)));
Output
-10