02 PostGIS常用空间分析函数

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

序号函数名描述示例
1ST_AsText(geometry)将几何对象转换为文本形式的WKT字符串ST_AsText(ST_GeomFromText(‘POINT(1 2)’)) 返回 ‘POINT(1 2)’
2ST_GeometryType(geometry)返回几何对象的类型,如POINT、LINESTRING、POLYGON等ST_GeometryType(ST_GeomFromText(‘LINESTRING(1 2, 3 4)’)) 返回 ‘LINESTRING’
3ST_SRID(geometry)返回几何对象的空间参考系IDST_SRID(ST_GeomFromText(‘POINT(1 2)’, 4326)) 返回 4326
4ST_SetSRID(geometry, srid)设置几何对象的空间参考系IDST_SetSRID(ST_GeomFromText(‘POINT(1 2)’), 4326) 返回 SRID 为 4326 的 POINT(1 2)
5ST_Dimension(geometry)返回几何对象的维度,如0表示点、1表示线、2表示面ST_Dimension(ST_GeomFromText(‘POINT(1 2)’)) 返回 0
6ST_Envelope(geometry)返回几何对象的最小外接矩形(MBR)ST_Envelope(ST_GeomFromText(‘LINESTRING(1 2, 3 4)’)) 返回 POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))
7ST_Length(geometry)计算线或多线段的长度ST_Length(ST_GeomFromText(‘LINESTRING(1 2, 3 4)’)) 返回 2.828427
8ST_Area(geometry)计算面或多边形的面积ST_Area(ST_GeomFromText(‘POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))’)) 返回 1
9ST_Buffer(geometry, distance)计算几何对象的缓冲区,参数distance表示缓冲区的半径或者宽度ST_Buffer(ST_GeomFromText(‘POINT(1 2)’), 0.5) 返回以 POINT(1 2) 为中心,半径为0.5的圆
10ST_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)
11ST_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))
12ST_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))
13ST_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))
14ST_Equals(geometry A, geometry B)判断两个几何对象是否相等ST_Equals(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘POINT(1 2)’)) 返回 true
15ST_Disjoint(geometry A, geometry B)判断两个几何对象是否不相交ST_Disjoint(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘LINESTRING(0 0, 2 2)’)) 返回 true
16ST_Touches(geometry A, geometry B)判断两个几何对象是否相接触ST_Touches(ST_GeomFromText(‘LINESTRING(0 0, 1 1)’), ST_GeomFromText(‘LINESTRING(1 1, 2 2)’)) 返回 true
17ST_Crosses(geometry A, geometry B)判断两个几何对象是否相交但不在同一平面内ST_Crosses(ST_GeomFromText(‘LINESTRING(0 0, 1 1)’), ST_GeomFromText(‘LINESTRING(1 0, 0 1)’)) 返回 true
18ST_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
19ST_Contains(geometry A, geometry B)判断几何对象A是否包含几何对象BST_Contains(ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’), ST_GeomFromText(‘POINT(1 2)’)) 返回 true
20ST_Intersects(geometry A, geometry B)判断两个几何对象是否相交ST_Intersects(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘LINESTRING(0 0, 2 2)’)) 返回 true
21ST_Centroid(geometry)计算几何对象的中心点ST_Centroid(ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’)) 返回 POINT(1.5 1.5)
22ST_PointOnSurface(geometry)计算几 何对象的表面上的点ST_PointOnSurface(ST_GeomFromText(‘POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))’)) 返回 POINT(1.5 1.5)
23ST_Transform(geometry, srid)将几何对象从一个空间参考系转换为另一个空间参考系ST_Transform(ST_GeomFromText(‘POINT(1 2)’, 4326), 3857) 返回在Web墨卡托投影下的 POINT(111319.49079327357 222684.20875941086)
24ST_Distance(geometry A, geometry B)计算两个几何对象之间的距离ST_Distance(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘POINT(3 4)’)) 返回 2.828427
25ST_Distance_Sphere(geometry A, geometry B)计算两个几何对象之间的球面距离,单位为米ST_Distance_Sphere(ST_GeomFromText(‘POINT(1 2)’, 4326), ST_GeomFromText(‘POINT(3 4)’, 4326)) 返回 314274.3882001206
26ST_Azimuth(geometry A, geometry B)计算从几何对象A到几何对象B的方位角,单位为弧度ST_Azimuth(ST_GeomFromText(‘POINT(1 2)’, 4326), ST_GeomFromText(‘POINT(3 4)’, 4326)) 返回 0.785398
27ST_MakePoint(x, y)创建一个二维点ST_MakePoint(1, 2) 返回 POINT(1 2)
28ST_MakeLine(geometry A, geometry B, …)创建一个线段ST_MakeLine(ST_MakePoint(1, 2), ST_MakePoint(3, 4)) 返回 LINESTRING(1 2, 3 4)
29ST_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))
30ST_GeomFromText(text)从WKT字符串创建几何对象ST_GeomFromText(‘POINT(1 2)’) 返回 POINT(1 2)
posted @   billy_gisboy  阅读(285)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示