PostGis--几何构造函数

40 阅读3分钟

1、简介

接着上一个文章: 到目前为止,我们看到的所有函数都“按原样”处理几何图形并返回

  • 对象分析(ST_Length(几何)ST_Area(几何)),
  • 对象的序列化(ST_AsText(geometry), ST_AsGML(geometry)),
  • 对象的一部分 (ST_RingN(geometry,n)) 或
  • 真/假检验(ST_Contains(几何,几何)、ST_Intersects(几何,几何))。

而这篇文章返回的就不是本身了,而是在形状上做了处理

2、ST_Centroid / ST_PointOnSurface

ST_Centroid(geometry) 返回一个近似在输入参数质心上的点。这种简单的计算速度非常快,但有时并不可取,因为返回的点不一定在特征本身中。如果输入要素具有凸性(假设字母“C”),则返回的质心可能不在要素的内部。 ST_PointOnSurface(geometry) 返回一个保证位于输入参数内的点。这使得它对于计算空间连接的“代理点”更有用。 在这里插入图片描述

3、ST_Buffer

缓冲操作在 GIS 工作流中很常见,在 PostGIS 中也可用。ST_Buffer(geometry,distance) 采用缓冲区距离和几何类型,并输出一个多边形,其边界为远离输入几何的缓冲区距离。 在这里插入图片描述

-- 例如,如果美国公园管理局想在自由岛周围实施海上交通区,他们可能会在岛上建造一个 500 米
-- 的缓冲多边形。自由岛是我们表中的单个人口普查区块,因此我们可以轻松提取和缓冲它。
-- nyc_census_blocks
CREATE TABLE liberty_island_zone AS
SELECT ST_Buffer(geom,500)::geometry(Polygon,26918AS geom
FROM nyc_census_blocks
WHERE blkid = '360610001001001';

ST_Buffer函数还接受负距离,并在多边形输入中构建内切多边形。 对于线和点,您将只得到一个空的返回。

在这里插入图片描述

在这里插入图片描述

4、ST_Intersection

ST_Intersection(geometry A, geometry B) 函数返回两个参数共有的空间面积(或线或点)。如果参数不相交,则函数返回一个空几何图形。 在这里插入图片描述

5、ST_Union

ST_Union(geometry, geometry):一个双参数版本,它接受两个几何图形并返回合并的并集。例如,当您将交集替换为并集时,上一节中的两圆示例如下所示。 在这里插入图片描述

6、substr和substring

SubStr(或 substring)函数用于从字符串中提取子字符串。函数的语法通常是:

substring(string from start for length)

substr(string, start, length)
  • string:要操作的字符串字段或值。
  • start:起始位置,从字符串的第一个字符开始。
  • length:提取子字符串的长度,即从起始位置开始的 11 个字符。

PS:

大家好,我是小健,Java开发工程师一枚,我会持续发一些技术推文,偶尔也会发些工作求职,互联网热点的事情,希望各位小伙伴多多支持,如果觉得本篇文章对您有所帮助,记得点赞关注收藏喔~