すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_OffsetCurve

最終更新日:Jan 12, 2024

このトピックでは、ST_OffsetCurve関数について説明します。 この関数は、入力ジオメトリオブジェクトから指定された距離とマージンにあるすべてのオフセット線を表すジオメトリオブジェクトを返します。

構文

ジオメトリST_OffsetCurve (ジオメトリライン、float signedDistance、text styleParameters);

パラメーター

パラメーター説明
ライン指定するラインオブジェクト。
signedDistance指定する距離。
styleParametersオフセット線のスタイル。 デフォルト値は空の文字列です。

説明

  • 返されたジオメトリオブジェクトと入力ジオメトリオブジェクトのポイント間の距離が、指定された距離を超えていません。
  • signedDistanceパラメーターの値が正数の場合、オフセット線は入力ジオメトリオブジェクトの左側にあり、入力ジオメトリオブジェクトと同じ方向にあります。 signedDistanceパラメーターの値が負数の場合、オフセット線は入力ジオメトリオブジェクトの右側にあり、入力ジオメトリオブジェクトの反対方向にあります。
  • この関数はz座標を無視します。 3Dジオメトリオブジェクトを指定した場合、この関数は2Dジオメトリオブジェクトを返します。
  • この関数は、GeometryCollectionオブジェクトとMultiLineStringオブジェクトをサポートします。
  • 次の表に、styleParametersパラメーターのフィールドを示します。
    フィールド説明データ型デフォルト値説明
    quad_segs4分の1円を近似するために使用されるセグメントの数。integer8より大きな値は、より滑らかな四分の一円を示す。
    joinオフセット線の結合スタイル。Stringround有効な値:
    • round
    • マイター
    • ベベル
    mitre_limitマイター比の限界。float--このパラメーターは、joinパラメーターをmitreに設定した場合にのみ有効です。

  • quad_segsフィールドの異なる値で返される結果:
    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
           から ('LINESTRING (0 0,0 1,1 1)'::geometry as g) as t;
    1
  • 結合フィールドの異なる値で返される結果:
    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
           から ('LINESTRING (0 0,0 1,1 1)'::geometry as g) as t;
    2
  • mitre_limitフィールドの異なる値で返される結果:
    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
           から ('LINESTRING (0 0,0 1,1 1)'::geometry as g) as t;
    3
  • signedDistanceパラメータの正の値と負の値で返される結果:
    st_curvetoline(ST_OffsetCurve(g,2)) を選択し、
             st_curvetoline(ST_OffsetCurve(g,-2)),g
           から (選択 'LINESTRING (0 0,0 2)'::geometry as g) as t;
    4