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圆的半径。
圆的数据在输出时使用第一种格式。