PostgreSQL中提供了空間類型字段
幾何類型
幾何數據類型表示二維空間的對象。表6-18 顯示了PostgreSQL 里面所有的幾何類型。最基本的類型是“點”,它是其它數據類型的基礎。
6.8.1點(point)
點是最基本的幾何類型。下面語法定義point類型的值:
( x , y )
x , y
x和y都是浮點數,表示橫坐標和縱坐標。
eg:
insert into public."user"(userid,name,password,position,phone) values('333','aa','123',point'(1,2)','132');
6.8.2 線段(lseg)
線段 (lseg)用兩個點來代表。 lseg 的值用下面語法定義:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
這里的 (x1,y1), (x2,y2) 是線段的端點。
eg:
insert into public."route"(routeid,line,userid,createtime) values('123',line'( ( 113 , 34.9 ) , ( 114 , 35 ) )','1','2019-01-01');
6.8.3 長方形(box)
長方形是用兩個對角個點來表示的。 它的值用下面的語法定義:
(1)( ( x1 , y1 ) , ( x2 , y2 ) )
(2)( x1 , y1 ) , ( x2 , y2 )
(3) x1 , y1 , x2 , y2
(x1,y1) 和 (x2,y2) 是長方形的一對對角點。
長方形的數據在輸出使用第一種語法。
6.8.4路徑(path)
路徑由一系列連接的點組成。路徑可能是開路的,列表中第一個點和最后一個點沒有連接,也可能是閉路的,第一個和最后一個點連接起來。
path 的值用下面語法定義:
(1)( ( x1 , y1 ) , ... , ( xn , yn ) )
(2)[ ( x1 , y1 ) , ... , ( xn , yn ) ]
(3)( x1 , y1 ) , ... , ( xn , yn )
(4) ( x1 , y1 , ... , xn , yn )
(5) x1 , y1 , ... , xn , yn
這里的點是構成路徑的線段的端點。 方括弧[]表明路徑是開路的,圓括弧()表明路徑是閉路的。
路徑的數據在輸出時使用第一種語法。
6.8.5多邊形(polygon)
多邊形由一系列點代表(多邊形的頂點)。多邊形在概念上與閉路路徑一樣,但是它與閉路路徑的存儲方式不一樣而且有自己的一套支持函數。
polygon 的值用下列語法定義:
(1)( ( x1 , y1 ) , ... , ( xn , yn ) )
(2)( x1 , y1 ) , ... , ( xn , yn )
(3) ( x1 , y1 , ... , xn , yn )
(4) x1 , y1 , ... , xn , yn
這里的點是組成多邊形邊界的線段的端點。
多邊形數據在輸出使用第一種語法。
6.8.6圓(circle)
圓由一個圓心和一個半徑表示。 circle 的值用下面語法定義:
(1)< ( x , y ) , r >
(2)( ( x , y ) , r )
(3) ( x , y ) , r
(4) x , y , r
這里的 (x,y) 是圓心,而r圓的半徑。
圓的數據在輸出時使用第一種格式。