8.7. 幾何類型

幾何資料類型資料表示二維的平面物體。 Table 8-16 顯示了PostgreSQL 裡面可以用的幾何類型。 最基本的類型:點,是其他類型的基礎。

Table 8-16. 幾何類型

名字儲存空間描述資料表現形式
point16 字元空間中一點(x,y)
line32 字元(無窮)直線(未完全實現)((x1,y1),(x2,y2))
lseg32 字元(有限)線段((x1,y1),(x2,y2))
box32 字元長方形((x1,y1),(x2,y2))
path16+16n 字元閉合路徑(與多邊形類似)((x1,y1),...)
path16+16n 字元開放路徑[(x1,y1),...]
polygon40+16n 字元多邊形(與閉合路徑相似)((x1,y1),...)
circle24 字元圓(圓心和半徑)<(x,y),r>

我們有一系列豐富的函數和操作符可用來進行各種幾何計算, 如拉伸,轉換,旋轉和計算相交等。 它們在 Section 9.10 裡有解釋。

8.7.1. Point(點)

點是幾何類型的基本二維構造單位。 用下面語法描述 point 的數值:

( x , y )
  x , y

這裡的參數是 是用浮點數資料表示的點的 x 坐標和 y 坐標。

8.7.2. 線段

線段 (lseg)是用一對點來代資料表的。 lseg 的值用下面語法聲明:

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

這裡的 (x1,y1)(x2,y2) 是線段的端點。

8.7.3. Box(方)

方是用一對對角點來資料表示的。 box 的值用下面語法聲明:

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

這裡的 (x1,y1)(x2,y2) 是方形的一對對角點。

方的輸出使用第一種語法。在輸入時將按先右上角後左下角的順序重新排列。 您也可以輸入其他的一對對角點。 但輸入時將先從輸入中和儲存的角中計算出左下角和右上角然後再儲存。

8.7.4. Path(路徑)

路徑由一系列連接的點組成。路徑可能是開放的, 也就是認為列資料表中第一個點和最後一個點沒有連接, 也可能是閉合的,這時認為第一個和最後一個點連接起來。

path 的數值用下面語法聲明:

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

這裡的點是組成路徑的線段的端點。 方括弧([])資料表明一個開放的路徑,圓括弧(())資料表明一個閉合的路徑。

路徑的輸出使用第一種語法輸出。

8.7.5. Polygon(多邊形)

多邊形由一系列點代資料表(多邊形的頂點)。多邊形可以認為與閉合路徑一樣, 但是儲存方式不一樣而且有自己的一套支援過程/函數。

polygon 的數值用下列語法聲明:

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

這裡的點是組成多邊形邊界的線段的端點。

多邊形輸出使用第一種語法。

8.7.6. Circle(圓)

圓由一個圓心和一個半徑代資料表。 circle 的數值用下面語法資料表示:

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

這裡的 (x,y) 是圓心,而r圓的半徑

圓的輸出用第一種格式。