把一个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