ST_CurveToLine

把一个CircularString对象转换成一个规则的LineString对象,或者把一个CurvedPolygon对象转换成一个规则的Polygon对象。

语法

geometry ST_CurveToLine(geometry curveGeom , float tolerance , integer toleranceType , integer flags);

参数

参数名称

描述

curveGeom

目标Geometry对象。

tolerance

容差,默认值为0。

toleranceType

确定对tolerance参数的解释:

  • 0:默认值,tolerance是每个象限的最大段数。

  • 1:tolerance是线与曲线在源单位下的最大偏差。

  • 2:tolerance是生成半径之间的以弧度为单位的最大角度。

flags

标志位:

  • 0:默认值。

  • 1:对称输出(与方向无关)。

  • 2:保持角,在产生对称输出时避免减小角度(段长)。对称输出标志关闭时不起作用。

描述

  • 每一个Curve对象或者片段会被分隔转换成近似线段的处理, 默认分隔处理方法是每四分之一圆分成32弧段。

  • 该函数常用于那些不支持CircularString几何类型的平台上。

示例

默认转换参数与指定参数效果对比:

select ST_CurveToLine(g),ST_CurveToLine(g,pi()/4,2) from (select 'CIRCULARSTRING(0 0,0.5 0.5,1 0)'::geometry as g) as test;

12