5.7. 幾何データ型

幾何データ型は 2 次元空間オブジェクトを表現します。 Table 5-17 は、PostgreSQL で使用可能な幾何データ型をリストしたものです。もっとも基本となる型は point で、すべての他の型の基礎を形成します。

Table 5-17. 幾何データ型

幾何データ型格納サイズ表現説明
point (座標点)16 バイト(x,y)空間における座標点
line32 バイト((x1,y1),(x2,y2))無限の直線 (完全には実装されていません)
lseg (線分)32 バイト((x1,y1),(x2,y2))有限の線分
box (矩形)32 バイト((x1,y1),(x2,y2))矩形
path (道)16+16n バイト((x1,y1),...)閉じた道(多角形に類似)
path (道)16+16n バイト[(x1,y1),...]開いた道
polygon (多角形)40+16n バイト((x1,y1),...)多角形(閉じた道に類似)
circle (円)24 バイト<(x,y),r>円(中心座標と半径)

縮尺、変換、回転、交点の算出といったいろいろな幾何学的操作を行う数多くの関数と演算子の組み合わせが豊富に揃っています。 このことについては Section 6.9 に説明があります。

5.7.1. point(座標点)

座標点は幾何データ型の基礎となる 2 次元構成要素です。 point は次の構文で指定されます。

( x , y )
  x , y

終端座標点です。

x

浮動小数点数数値の X 軸座標点です。

y

浮動小数点数数値の Y 軸座標点です。

5.7.2. lseg(線分)

線分(lseg)は座標点の組合せで表現されます。 lseg は次の構文で指定されます。

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

ここで次の引数

(x1,y1)
(x2,y2)

は、線分の終端です。

5.7.3. box(矩形)

矩形は対角線の両端の座標点の組み合わせで表されます。 box は以下の構文で指定されます。

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

ここで次の引数

(x1,y1)
(x2,y2)

は、対角線上の角です。

矩形は一番上に示した構文で出力されます。2 つ頂点は、左下の頂点を最初に、右上の頂点をその後に格納するよう入力時に並べます。 矩形の他の頂点を入力しても構いませんが入力の左下と右上の頂点から矩形が決定され、そして格納されます。

5.7.4. path データ型

道は接続している座標点の集まりで表現されます。道は最初の座標点と最後の座標点が接続されていない開いている状態か、最初の座標点と最後の座標点点が接続されている閉じた状態かのいずれかです。あるパスを強制的に開いた状態や閉じた状態にする popen(p)pclose(p) 関数が提供されていて、また isopen(p)isclosed(p) 関数で、問い合わせの中でどちらの形式かを検証できます。

path は次の構文で指定されます。

( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]  
  ( x1 , y1 ) , ... ,   ( xn , yn )  
  ( x1 , y1   , ... ,   xn , yn )  
    x1 , y1   , ... ,   xn , yn    

引数は以下のとおりです。

(x,y)

線分の終端座標点は道を形成します。 ([) で始まるのは開いた道で、(() で始まるのは閉じた道です。

道は始めに示した構文で出力されます。

5.7.5. polygon(多角形)

多角形は座標点の集まりで表現されます。多角形はたぶん閉じた道と同じと考えられるかも知れませんが、異なった方式で格納されると同時にそれぞれ独自に支援するルーチン一式を持っています。

polygon は次の構文で指定されます。

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )  
  ( x1 , y1   , ... ,   xn , yn )  
    x1 , y1   , ... ,   xn , yn    

引数は以下のとおりです。

(x,y)

線分の終端座標点は多角形を形成する最先端になっています。

多角形は始めに示した構文で出力されます。

5.7.6. circle (円)

円は中心座標点と半径で表現されます。 circle は次の構文で指定されます。

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r  
    x , y   , r  

引数は以下のとおりです。

(x,y)

円の中心

r

円の半径

円は始めに示した構文で出力されます。