02 PostGIS常用空间分析函数

本文列举了PostGIS中的一些关键空间分析函数,如ST_AsText用于将几何对象转换为WKT字符串,ST_GeometryType获取几何类型,ST_SRID和ST_SetSRID处理空间参考系,以及ST_Distance、ST_Intersection和ST.Buffer等用于计算距离、交集和缓冲区的函数。这些函数在地理信息系统和数据库操作中十分实用。
摘要由CSDN通过智能技术生成

常用的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)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值