無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

8.8. 幾何データ型

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

表 8-20. 幾何データ型

型名 格納サイズ 表現 説明
point 16バイト 平面における座標点 (x,y)
line 32バイト 無限の直線(完全には実装されていません) ((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>(中心と半径)

拡大縮小、変形、回転、交点の算出といった様々な幾何学的操作を行う関数と演算子の集合が豊富に揃っています。 このことについては 項9.11 に説明があります。

8.8.1. 座標点

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

( 

x

 , 

y

 )
  

x

 , 

y

ここで x y は、それぞれの座標を浮動小数点数数値で表したものです。

座標点は1番目の構文で出力されます。

8.8.2. 線分

線分( lseg )は座標点の組み合わせで表現されます。 lseg 型の値は次の構文のいずれかで指定されます。

[ ( 

x1

 , 

y1

 ) , ( 

x2

 , 

y2

 ) ]
( ( 

x1

 , 

y1

 ) , ( 

x2

 , 

y2

 ) )
  ( 

x1

 , 

y1

 ) , ( 

x2

 , 

y2

 )
    

x1

 , 

y1

   ,   

x2

 , 

y2

ここで、 ( x1 , y1 ) ( x2 , y2 ) は線分の終端点です。

線分は1番目の構文で出力されます。

8.8.3. 矩形

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

( ( 

x1

 , 

y1

 ) , ( 

x2

 , 

y2

 ) )
  ( 

x1

 , 

y1

 ) , ( 

x2

 , 

y2

 )
    

x1

 , 

y1

   ,   

x2

 , 

y2

ここで ( x1 , y1 ) ( x2 , y2 ) は矩形の対角線の両端です。

矩形は最初に示した構文で出力されます。

任意の対角頂点を入力として指定することができます。 しかし頂点は右上の頂点を最初に、左下の頂点をその後に格納するよう必要に応じて並べられます。

8.8.4. 経路

経路は接続している座標点のリストで表現されます。 経路は最初の座標点と最後の座標点が接続されていないとみなされる 開いている 状態か、最初の座標点と最後の座標点が接続されているとみなされる 閉じた 状態かのいずれかです。

path 型の値は次の構文のいずれかで指定されます。

[ ( 

x1

 , 

y1

 ) , ... , ( 

xn

 , 

yn

 ) ]
( ( 

x1

 , 

y1

 ) , ... , ( 

xn

 , 

yn

 ) )
  ( 

x1

 , 

y1

 ) , ... , ( 

xn

 , 

yn

 )
  ( 

x1

 , 

y1

   , ... ,   

xn

 , 

yn

 )
    

x1

 , 

y1

   , ... ,   

xn

 , 

yn

ここで、各座標点は、経路を構成する線分の終端点です。 大括弧( [] )は開経路を、括弧( () )は閉経路を示します。 3番目から4番目の構文のようにもっとも外側の括弧が省略された場合、閉経路と仮定されます。

経路は最初または2番目の適切な構文で出力されます。

8.8.5. 多角形

多角形は座標点(多角形の頂点)のリストで表現されます。 多角形は閉経路ととても良く似ていますが、異なった方式で格納されると同時にそれぞれ独自のサポート関数群を持っています。

polygon 型の値は次の構文のいずれかで指定されます。

( ( 

x1

 , 

y1

 ) , ... , ( 

xn

 , 

yn

 ) )
  ( 

x1

 , 

y1

 ) , ... , ( 

xn

 , 

yn

 )
  ( 

x1

 , 

y1

   , ... ,   

xn

 , 

yn

 )
    

x1

 , 

y1

   , ... ,   

xn

 , 

yn

各座標点は多角形の境界を構成する線分の終端点です。

多角形は最初の構文で出力されます。

8.8.6. 円

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

< ( 

x

 , 

y

 ) , 

r

 >
( ( 

x

 , 

y

 ) , 

r

 )
  ( 

x

 , 

y

 ) , 

r


    

x

 , 

y

   , 

r

ここで ( x , y ) は円の中心点、 r は円の半径です。

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


powered by SEO.CUG.NET