名前

ST_BoundingDiagonal — ジオメトリーのバウンディングボックスの対角線を返します。

概要

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

説明

与えられたジオメトリーのバウンディングボックスの対角線をラインストリングで返します。最小値のポイントを始点とし、最大値のポイントを終点とする、二つのポイントからなるラインストリングになります。入力ジオメトリーが空の場合には、対角線はLINESTRING EMPTY となります。

fitsパラメータは、最良適合が必要かどうかを指定するものです。FALSE の場合には、幾分大きめなバウンディングボックスの対角線を受け付けることができます (多数の頂点からなるジオメトリーの取得が早くなります)。いずれにしても返された対角線のバウンディングボックスは常に入力ジオメトリーを含みます。

返されるラインストリングは常に、入力ジオメトリーの SRID と次元 (Z と M があること) を維持します。

[注記]

縮退した (入力の頂点が一つ) 場合、返されるラインストリングは形式的に不正です (内部が無い)。トポロジ的には妥当です。

Availability: 2.2.0

この関数は3次元に対応し、Z値を削除しません。

この関数はM値に対応します。

この例では、ポリゴンとバウンダリーボックスの対角線とを一緒に示しています。

コード
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;
出力
POLYGON((10 20,30 60,70 40,90 10,50 -10,10 20)) | LINESTRING(10 -10,90 60)
Geometry figure for visual-st-boundingdiagonal-01

この例では、ポイントをバッファーで広げたときの minimum X 座標が返されます。

コード
SELECT ST_X(ST_StartPoint(ST_BoundingDiagonal(
  ST_Buffer(ST_Point(0, 0), 10)
)));
出力
-10