02 PostGIS常用空间分析函数

常用的PostGIS空间分析函数清单:

序号 函数名 描述 示例
1 ST_AsText(geometry) 将几何对象转换为文本形式的WKT字符串 ST_AsText(ST_GeomFromText(‘POINT(1 2)’)) 返回 ‘POINT(1 2)’
2 ST_GeometryType(geometry) 返回几何对象的类型,如POINT、LINESTRING、POLYGON等 ST_GeometryType(ST_GeomFromText(‘LINESTRING(1 2, 3 4)’)) 返回 ‘LINESTRING’
3 ST_SRID(geometry) 返回几何对象的空间参考系ID ST_SRID(ST_GeomFromText(‘POINT(1 2)’, 4326)) 返回 4326
4 ST_SetSRID(geometry, srid) 设置几何对象的空间参考系ID ST_SetSRID(ST_GeomFromText(‘POINT(1 2)’), 4326) 返回 SRID 为 4326 的 POINT(1 2)
5 ST_Dimension(geometry) 返回几何对象的维度,如0表示点、1表示线、2表示面 ST_Dimension(ST_GeomFromText(‘POINT(1 2)’)) 返回 0
6 ST_Envelope(geometry) 返回几何对象的最小外接矩形(MBR) ST_Envelope(ST_GeomFromText(‘LINESTRING(1 2, 3 4)’)) 返回 POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))
7 ST_Length(geometry) 计算线或多线段的长度 ST_Length(ST_GeomFromText(‘LINESTRING(1 2, 3 4)’)) 返回 2.828427
8 ST_Area(geometry) 计算面或多边形的面积 ST_Area(ST_GeomFromText(‘POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))’)) 返回 1
9 ST_Buffer(geometry, distance) 计算几何对象的缓冲区,参数distance表示缓冲区的半径或者宽度 ST_Buffer(ST_GeomFromText(‘POINT(1 2)’), 0.5) 返回以 POINT(1 2) 为中心,半径为0.5的圆
10 ST_Intersection(geometry A, geometry B) 计算两个几何对象的交集 ST_Intersection(ST_GeomFromText(‘LINESTRING(0 0, 2 2)’), ST_GeomFromText(‘LINESTRING(1 0, 0 1)’)) 返回 POINT(0.5 0.5)
11 ST_Union(geometry A, geometry B) 计算两个几何对象的并集 ST_Union(ST_GeomFromText(‘LINESTRING(0 0, 1 1)’), ST_GeomFromText(‘LINESTRING(1 1, 2 2)’)) 返回 MULTILINESTRING((0 0, 1 1, 2 2))
12 ST_Difference(geometry A, geometry B) 计算两个几何对象的差集 ST_Difference(ST_GeomFromText(‘LINESTRING(0 0, 2 2)’), ST_GeomFromText(‘LINESTRING(1 0, 0 1)’)) 返回 MULTILINESTRING((0 0, 1 1))
13 ST_SymDifference(geometry A, geometry B) 计算两个几何对象的对称差集 ST_SymDifference(ST_GeomFromText(‘LINESTRING(0 0, 2 2)’), ST_GeomFromText(‘LINESTRING(1 0, 0 1)’)) 返回 MULTILINESTRING((0 0, 1 1), (1 1, 2 2))
14 ST_Equals(geometry A, geometry B) 判断两个几何对象是否相等 ST_Equals(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘POINT(1 2)’)) 返回 true
15 ST_Disjoint(geometry A, geometry B) 判断两个几何对象是否不相交 ST_Disjoint(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘LINESTRING(0 0, 2 2)’)) 返回 true
16 ST_Touches(geometry A, geometry B) 判断两个几何对象是否相接触 ST_Touches(ST_GeomFromText(‘LINESTRING(0 0, 1 1)’), ST_GeomFromText(‘LINESTRING(1 1, 2 2)’)) 返回 true
17 ST_Crosses(geometry A, geometry B) 判断两个几何对象是否相交但不在同一平面内 ST_Crosses(ST_GeomFromText(‘LINESTRING(0 0, 1 1)’), ST_GeomFromText(‘LINESTRING(1 0, 0 1)’)) 返回 true
18 ST_Within(geometry A, geometry B) 判断几何对象A是否在几何对象B内部 ST_Within(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’)) 返回 true
19 ST_Contains(geometry A, geometry B) 判断几何对象A是否包含几何对象B ST_Contains(ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’), ST_GeomFromText(‘POINT(1 2)’)) 返回 true
20 ST_Intersects(geometry A, geometry B) 判断两个几何对象是否相交 ST_Intersects(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘LINESTRING(0 0, 2 2)’)) 返回 true
21 ST_Centroid(geometry) 计算几何对象的中心点 ST_Centroid(ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’)) 返回 POINT(1.5 1.5)
22 ST_PointOnSurface(geometry) 计算几 何对象的表面上的点 ST_PointOnSurface(ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’)) 返回 POINT(1.5 1.5)
23 ST_Transform(geometry, srid) 将几何对象从一个空间参考系转换为另一个空间参考系 ST_Transform(ST_GeomFromText(‘POINT(1 2)’, 4326), 3857) 返回在Web墨卡托投影下的 POINT(111319.49079327357 222684.20875941086)
24 ST_Distance(geometry A, geometry B) 计算两个几何对象之间的距离 ST_Distance(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘POINT(3 4)’)) 返回 2.828427
25 ST_Distance_Sphere(geometry A, geometry B) 计算两个几何对象之间的球面距离,单位为米 ST_Distance_Sphere(ST_GeomFromText(‘POINT(1 2)’, 4326), ST_GeomFromText(‘POINT(3 4)’, 4326)) 返回 314274.3882001206
26 ST_Azimuth(geometry A, geometry B) 计算从几何对象A到几何对象B的方位角,单位为弧度 ST_Azimuth(ST_GeomFromText(‘POINT(1 2)’, 4326), ST_GeomFromText(‘POINT(3 4)’, 4326)) 返回 0.785398
27 ST_MakePoint(x, y) 创建一个二维点 ST_MakePoint(1, 2) 返回 POINT(1 2)
28 ST_MakeLine(geometry A, geometry B, …) 创建一个线段 ST_MakeLine(ST_MakePoint(1, 2), ST_MakePoint(3, 4)) 返回 LINESTRING(1 2, 3 4)
29 ST_MakePolygon(geometry A, geometry B, …) 创建一个多边形 ST_MakePolygon(ST_MakeLine(ST_MakePoint(1, 2), ST_MakePoint(3, 4), ST_MakePoint(5, 6), ST_MakePoint(1, 2))) 返回 POLYGON((1 2, 3 4, 5 6, 1 2))
30 ST_GeomFromText(text) 从WKT字符串创建几何对象 ST_GeomFromText(‘POINT(1 2)’) 返回 POINT(1 2)

你可能感兴趣的:(#,PostGIS,算法,postgresql)