首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YashanDB ST_SPLIT函数

YashanDB ST_SPLIT函数

原创
作者头像
用户10349277
修改2025-05-29 18:21:29
修改2025-05-29 18:21:29
2570
举报
文章被收录于专栏:YashanDB知识库YashanDB知识库
代码语言:javascript
复制
st_split::= ST_SPLIT "(" input "," blade ")"

Copied!

ST_SPLIT函数用于返回input几何对象被blade几何对象切割之后产生的几何对象。

本函数遵守如下规则:

  • 输入参数input和blade须具有相同的空间参考系,否则函数返回错误。
  • 输入参数input和blade任意一个为NULL时,函数返回NULL。
  • 输入参数input和blade任意一个的坐标中包含NAN和INF时,函数返回错误。
  • 输入参数input只能为LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection。
    • input为LineString时,blade可以为Point、MultiPoint、LineString、MultiLineString、Polygon或MultiPolygon。
    • input为Polygon时,blade只能为MultiLineString和LineString。
    • input为GeometryCollection时,会依次对GeometryCollection中的每个成员做切割,如果其中一个成员不支持切割,返回错误。

input

通用表达式,其值必须为有效的ST_GEOMETRY类型的数据。

blade

通用表达式,其值必须为有效的ST_GEOMETRY类型的数据。

示例

代码语言:javascript
复制
SELECT st_astext(st_split(st_geomfromtext('linestring(1 1, 3 3)'), st_geomfromtext('point(2 2)')), 0) split FROM dual;

SPLIT
----------------------------------------------------------------
GEOMETRYCOLLECTION (LINESTRING (1 1, 2 2), LINESTRING (2 2, 3 3))

SELECT st_astext(st_split(st_geomfromtext('linestring(1 1, 4 4)'), st_geomfromtext('multipoint(2 2, 3 3)')), 0) split FROM dual;

SPLIT
----------------------------------------------------------------
GEOMETRYCOLLECTION (LINESTRING (3 3, 4 4), LINESTRING (1 1, 2 2), LINESTRING (2 2, 3 3))

SELECT st_astext(st_split(st_geomfromtext('linestring(1 1, 4 4)'), st_geomfromtext('polygon((0 0, 0 2, 2 2, 2 0, 0 0))')), 0) split FROM dual;

SPLIT
----------------------------------------------------------------
GEOMETRYCOLLECTION (LINESTRING (1 1, 2 2), LINESTRING (2 2, 4 4))

SELECT st_astext(st_split(st_geomfromtext('polygon((0 0, 0 2, 2 2, 2 0, 0 0))'), st_geomfromtext('linestring(1 -1, 1 3)')), 0) split FROM dual;

SPLIT
----------------------------------------------------------------
GEOMETRYCOLLECTION (POLYGON ((0 0, 0 2, 1 2, 1 0, 0 0)), POLYGON ((1 2, 2 2, 2 0, 1 0, 1 2)))

SELECT st_astext(st_split(st_geomfromtext('geometrycollection(polygon((0 0, 0 2, 2 2, 2 0, 0 0)), linestring(0 0, 2 2))'), st_geomfromtext('linestring(1 -1, 1 3)')), 0) split FROM dual;

SPLIT
----------------------------------------------------------------
GEOMETRYCOLLECTION (POLYGON ((0 0, 0 2, 1 2, 1 0, 0 0)), POLYGON ((1 2, 2 2, 2 0, 1 0, 1 2)), LINESTRING (0 0, 1 1), LINESTRING (1 1, 2 2))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档