3.6. 幾何データ型

幾何データ型は2次元空間オブジェクトを表現します。 もっとも主要な型は point で、他のすべての型の基本になります。

Table 3-16. 幾何データ型

幾何データ型データベース上のバイト数表現方法説明
point16 bytes(x,y)空間における座標点
line32 bytes((x1,y1),(x2,y2))無限の直線
lseg32 bytes((x1,y1),(x2,y2))有限の線分
box32 bytes((x1,y1),(x2,y2))矩形
path4+32n bytes((x1,y1),...)閉じたパス (多角形に似ている)
path4+32n bytes[(x1,y1),...]開いているパス
polygon4+32n bytes((x1,y1),...)多角形 (閉じたパスに似ている)
circle24 bytes<(x,y),r>円 (中心点と半径)

拡大/縮小、変換、回転、交点算出などのいろいろな座標操作をするために、 多くの機能や演算子の組み合わせが使用できます。

3.6.1. 座標点(Point)

座標 (Point) は地理データ型の基礎となる2次元構成要素です。

下記はpoint型の書式設定です。

( x , y )
  x , y
     
において、それぞれは

x

X 座標値 (浮動小数点)

y

Y 座標値 (浮動小数点)

3.6.2. 線分(lseg)

線分(lseg)は1組の座標点で表現されます。

lsegは下記の形式で設定します。

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2
     
において、

(x1,y1), (x2,y2)

は線分の終端です。

3.6.3. 矩形(Box)

矩形は、対角線上の角(かど)を表す一組の座標点 (point) で 表現されます。

box型は下記の形式で指定します。

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2
     
において、

(x1,y1), (x2,y2)

は対角線上の角です。

矩形は上記一番上の書式で出力されます。 2つの角は、左下の角を最初に、 右上の角を最後に格納するように並べ替えられます。矩形の中の他の角を 入力することもできますが、入力から左下と右上の角が決定され、格納されます。

3.6.4. パス(Path)

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)

は 1 から n までの座標点で、"[" で始まるのは開いたパス、 "(" で始まるのは閉じたパスです。

Pathsは最初の構文を用いた結果です。

3.6.5. 多角形(Polygon)

多角形は座標点のセットで表現されます。これは、"閉じたパス"と 同じであると考えられますが、異なった方法で格納され、 また双方とも別々のサポートルーチンセットを持っています。

polygon型は、下記の形式で指定します。

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )  
  ( x1 , y1   , ... ,   xn , yn )  
    x1 , y1   , ... ,   xn , yn    
     
において

(x,y)

は 1 から n までの座標点です。

多角形は、最初の書式で出力されます。

3.6.6. 円(Circle)

円 (circle) は、中心点座標と半径によって表現されます。

circle型は下記の形式で指定します。

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r  
    x , y   , r  
     
において

(x,y)

は円の中心座標で、

r

は円の半径です。

円は最初のの構文で出力されます。