地理データ型は2次元空間オブジェクトを表現します。 もっとも主要な型は point で、他のすべての型の基本になります。
Table 3-18. 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) は地理データ型の基礎となる2次元構成要素です。
point 型の書式設定です:
( x , y )
あるいは
x , y
ここで
x は X 座標値 (浮動小数点)
y は Y 座標値 (浮動小数点)線分 (lseg:Line Segment) は1組の座標点で表現されます。
lseg 型は、以下の書式で設定します:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
ここで
(x1,y1) および (x2,y2) は線分の終端矩形は、対角線上の角(かど)を表す一組の座標点 (point) で 表現されます。
box 型は、以下の書式で指定します:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
ここで
(x1,y1) および (x2,y2) は対角線上の角
矩形は上記一番上の書式で出力されます。
2 つの角は、左下の角を最初に、右上の角を最後に格納するように
並べ替えられます.矩形の中の他の角を入力することもできますが、
入力から左下と右上の角が決定され、格納されます.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 までの座標点
"[" で始まるのは開いたパス
"(" で始まるのは閉じたパス
path は最初の書式で出力されます。
Postgres の v6.1 より前のバージョン
では、path の書式として、 "(" で始まる「閉じていること」を示す
フラグ、座標点の数を表す 1 つの整数カウンタ、座標点のリスト、
最後に閉じ括弧 ")" という形式を使用していました。
v6.1 以前のデータベースからダンプおよびリロードされた path を
変換するために、組み込み関数 upgradepath
を使用することができます。多角形は座標点のセットで表現されます。これは、"閉じたパス"と 同じであると考えられますが、異なった方法で格納され、また 双方とも別々のサポートルーチンセットを持っています.
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 以前のバージョン
では、polygonの書式として、"(" 、X 座標のリスト、Y 座標のリスト、
最後に閉じ括弧 ")" という形式を使用していました.
v6.1 以前のデータベースからダンプおよびリロードされた多角形を
変換するために、組み込み関数 upgradepoly
を使用することができます.
円 (circle) は、中心点座標と半径によって表現されます。
circle 型は以下の書式で指定します:
< ( x , y ) , r >
( ( x , y ) , r )
( x , y ) , r
x , y , r
ここで、
(x,y) は円の中心座標
r は円の半径
円は一番上の書式で出力されます