返回距输入线给定距离和边距的偏移线。
语法
geometry ST_OffsetCurve(geometry line , float signedDistance , text styleParameters);
参数
参数名称 | 描述 |
line | 目标线对象。 |
signedDistance | 距离。 |
styleParameters | 样式参数,默认为空字符串。 |
描述
返回的Geometry对象的所有点距离输入对象的距离均不会超过给定距离。
若距离为正,偏移量将在输入线的左侧,并保持相同方向。反之,它将位于右侧,并且方向相反。
该函数会忽略三维坐标,即便输入的是一个三维对象,返回的也是二维结果。
该函数支持GeometryCollection对象和MultiLineString对象。
styleParameters参数如下:
参数名称
描述
类型
默认值
说明
quad_segs
用来近似四分之一圆的弧段数
integer
8
数值越大,弧段越圆滑。
join
连接方式
string
round
可选值为:
round
mitre
bevel
mitre_limit
切割率限制
float
--
只影响采用mitre连接方式的情况。
示例
不同弧段分段数对比:
select st_curvetoline(ST_OffsetCurve(g,1,'quad_segs=2')), st_curvetoline(ST_OffsetCurve(g,1.1,'quad_segs=3')), st_curvetoline(ST_OffsetCurve(g,1.2))g from (select 'LINESTRING(0 0,0 1,1 1)'::geometry as g) as t;
不同连接方式对比:
select st_curvetoline(ST_OffsetCurve(g,1,'join=round')), st_curvetoline(ST_OffsetCurve(g,1.1,'join=mitre')), st_curvetoline(ST_OffsetCurve(g,1.2,'join=bevel')),g from (select 'LINESTRING(0 0,0 1,1 1)'::geometry as g) as t;
不同切割率限制对比:
select st_curvetoline(ST_OffsetCurve(g,1,'join=mitre mitre_limit=0.1')), st_curvetoline(ST_OffsetCurve(g,1.1,'join=mitre mitre_limit=0.5')), st_curvetoline(ST_OffsetCurve(g,1.2,'join=mitre mitre_limit=1')),g from (select 'LINESTRING(0 0,0 1,1 1)'::geometry as g) as t;
正负距离对比:
select st_curvetoline(ST_OffsetCurve(g,2)), st_curvetoline(ST_OffsetCurve(g,-2)),g from (select 'LINESTRING(0 0,0 1,1 2)'::geometry as g) as t;
文档内容是否对您有帮助?