目录
- 1、简介
- 2、ST_Centroid / ST_PointOnSurface
- 3、ST_Buffer
- 4、ST_Intersection
- 5、ST_Union
- 6、substr和substring
- PS:
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,26918) AS 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开发工程师一枚,我会持续发一些技术推文,偶尔也会发些工作求职,互联网热点的事情,希望各位小伙伴多多支持,如果觉得本篇文章对您有所帮助,记得点赞关注收藏喔~