● Geometry ○ Geometry是集合对象的基类,也就是说Point、lineString、polygon都是Geometry的子类 ● Point ○ 点对象,有一个坐标值,没有长度、面积、边界。数据格式为:经度longitude在前,纬度latitude在后,用空格分割,例如:POINT(116.4163528578841 39.870942749660706) ● LingString ○ 线对象,由一系列点连接而成。 ○ 如果线从头至尾没有交叉,那就是简单的simple;如果起点和终点重叠,那就是封闭的closed。 ○ 数据格式为:点与点之间逗号隔开,例如:LINESTRING (116.419444978 39.871422705, 116.419443261 39.871427365, 116.419440766 39.87143595, 116.419438923 39.871444627, 116.419438166 39.871450283) ● Polygon ○ 多边形对象。可以是一个实心平面形,即没有内部边界,也可以有空洞,类似纽扣。 ○ 数据格式为: ■ 实心型:POLYGON((121.342423 31.542423,121.345664 31.246790,121.453178 31.456862),(121.563633 31.566652,121.233565 31.234565,121.568756 31.454367)) ■ 纽扣型:POLYGON((0 0,10 0, 10 10, 0 10)) ● MultiPoint、MultiLingString、MultiPolygon、GeometryCollection为上面对象的集合 数据格式为下例 MULTIPOINT(0 0, 20 20, 60 60) MULTILINESTRING((10 10, 20 20), (15 15, 30 15)) MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5))) GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))
常用几何对象属性查询函数
- Geometry:为基类函数,点线面都可以用 a. dimension(g):返回集合对象g的维数,点为0,线为1,多边形为2 b. Envelope(g):返回集合对象g的最小边界矩形(xy的极值点)。如果对象为点责返回该点对象,如果对象为线或者多边形则返回极值坐标xy坐标构造成的矩形polygon c. isClosed(g):返回集合对象g是否封闭,条件为该线对象首位点point重合则为封闭,封闭为1,不封闭为0,如果集合对象不为线对象的话,则返回为null d. isSimple(g):返回集合对象g是否为简单,条件为该线对象没有交叉则为简单,简单为1,不简单为0,如果几何对象不为线对象的话,返回为null
- Point:点 a. X(p):返回p点的X坐标 b. Y(p):返回p点的Y坐标
- LineString:线 a. EndPoint(line):返回对象line的最后一个点Point b. StartPoint(line):返回对象line的第一个点Point c. Point(line,N):返回对象line中的第N个点,N从1开始
- Polygon:面 a. ExteriorRing(Poly):返回多边形对象poly的外轮廓线,类型为LineString b. InteriorRingN(poly, N):返回对象poly的第N个空洞轮廓线,N从1开始 c. NumInteriorRings(poly):返回对象polygon的空洞个数
返回新的几何对象
- st_union(g1, g2):返回面1和面2的并集
- st_difference(g1, g2):返回面1 - (面1和面2的交集)
- st_intersection(g1, g2): 返回面1和面2的交集