ST_OffsetCurve
更新時間:
返回距輸入線給定距離和邊距的偏移線。
語法
geometry ST_OffsetCurve(geometry line , float signedDistance , text styleParameters);
參數(shù)
參數(shù)名稱 | 描述 |
line | 目標(biāo)線對象。 |
signedDistance | 距離。 |
styleParameters | 樣式參數(shù),默認(rèn)為空字符串。 |
描述
返回的Geometry對象的所有點距離輸入對象的距離均不會超過給定距離。
若距離為正,偏移量將在輸入線的左側(cè),并保持相同方向。反之,它將位于右側(cè),并且方向相反。
該函數(shù)會忽略三維坐標(biāo),即便輸入的是一個三維對象,返回的也是二維結(jié)果。
該函數(shù)支持GeometryCollection對象和MultiLineString對象。
styleParameters參數(shù)如下:
參數(shù)名稱
描述
類型
默認(rèn)值
說明
quad_segs
用來近似四分之一圓的弧段數(shù)
integer
8
數(shù)值越大,弧段越圓滑。
join
連接方式
string
round
可選值為:
round
mitre
bevel
mitre_limit
切割率限制
float
--
只影響采用mitre連接方式的情況。
示例
不同弧段分段數(shù)對比:
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;
正負(fù)距離對比:
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;
文檔內(nèi)容是否對您有幫助?