PostgreSQL
上一頁 第三章. 數據型態 下一頁

幾何型態

幾何型態表示二維的平面物體。最基本的型態:點,是其他型態的基礎。

表 3-17. Postgres 幾何型態

幾何型態 儲存空間 表達 描述
point 16 bytes (x,y) 空間中一點
line 32 bytes ((x1,y1),(x2,y2)) (無窮)直線
lseg 32 bytes ((x1,y1),(x2,y2)) 線段
box 32 bytes ((x1,y1),(x2,y2)) 長方形
path 4+32n bytes ((x1,y1),...) 閉合路徑(與多邊形類似)
path 4+32n bytes [(x1,y1),...] 開放路徑
polygon 4+32n bytes ((x1,y1),...) 多邊形(與閉合路徑相似)
circle 24 bytes <(x,y),r> 圓(圓心和半徑)

一系列豐富的函數和運算符號可用來進行各種幾何計算,如度量,轉換,旋轉和計算相交等。

Point(點)

點是集合型態的基本二維構造單位。

用下面語法描述 point

( x , y )
  x , y
這裡
    x 是用一個浮點數表示的點的 x 坐標
    y 是用一個浮點數表示的點的 y 坐標     

Line Segment(線段)

線段(lseg)是用一對點來代表的。

lseg 用下面語法聲明:

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

Box(方)

方是用一對對角點來表示的。

box 的聲明如下:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2    
這裡
    (x1,y1) 和 (x2,y2) 是一對對角點     

方的輸出使用第一種語法。在輸入時將按先左下角後右上角的順序重新排列。你也可以輸入其他的一對對角點。但輸入時將按照先左下角後右上角的順序重排並儲存。

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    
這裡
    (x1,y1),...,(xn,yn) 是點 1 到點 n
    前面的 "[" 表明一個開放的路徑
    前面的 "(" 表明一個閉合的路徑     

路徑的輸出使用第一種語法輸出。注意 Postgres v6.1以前的版本路徑的格式是由一個圓括號開始──一個"關閉標誌",一個點的計數然後後面是點的列表,最後是一個圓括號結束。有一個內建的函數upgradepath 可用於從6.1前版本輸出和重載路徑,將其轉換成新的。

Polygon(多邊形)

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

polygon 用下列語法聲明:

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )  
  ( x1 , y1   , ... ,   xn , yn )  
    x1 , y1   , ... ,   xn , yn    
這裡
    (x1,y1),...,(xn,yn) 是點 1 到點 n     

多邊形輸出使用第一種語法。要注意在 Postgres 版本v6.1前,多邊形的格式是一個圓括號開頭,後面是點的x坐標列表,然後是點的y坐標列表,最後是一個圓括號結束。用內建的函數upgradepoly 可用於從6.1前版本輸出和重載多邊形,將其轉換成新的。

Circle(圓)

圓由一個圓心和一個半徑代表。

circle 用下面語法表示:

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

圓的輸出用第一個格式。


上一頁 首頁 下一頁
布爾型態 開頭 IP 版本 4 網路和主機地址