プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

31.4 SDO_UTIL.CIRCLE_POLYGON

書式

SDO_UTIL.CIRCLE_POLYGON(
     point         IN SDO_GEOMETRY, 
     radius        IN NUMBER, 
     arc_tolerance IN NUMBER, 
     start_azimuth IN NUMBER DEFAULT NULL, 
     end_azimuth   IN NUMBER DEFAULT NULL, 
     orientation   IN NUMBER DEFAULT NULL, 
     arc           IN NUMBER DEFAULT NULL 
     ) RETURN SDO_GEOMETRY;

または

SDO_UTIL.CIRCLE_POLYGON(
     center_longitude IN NUMBER, 
     center_latitude  IN NUMBER, 
     radius           IN NUMBER, 
     arc_tolerance    IN NUMBER 
     ) RETURN SDO_GEOMETRY;

または

SDO_UTIL.CIRCLE_POLYGON(
     center_longitude IN NUMBER, 
     center_latitude  IN NUMBER, 
     radius           IN NUMBER, 
     start_azimuth    IN NUMBER, 
     end_azimuth      IN NUMBER, 
     arc_tolerance    IN NUMBER 
     ) RETURN SDO_GEOMETRY;

説明

測地座標系内の円および円弧のポリゴンまたは折れ線近似処理を作成します。

  • 最初の形式では、出力を完全に制御できます。

  • 2番目の形式では、指定された円に近似するか、または覆われるポリゴン・ジオメトリを戻します。

  • 3番目の形式では、開始方位から終了方位までの円の境界(円弧)を近似処理する線ジオメトリを戻します。

パラメータ

point

円の中心です。測地座標系の点ジオメトリである必要があります。戻されるジオメトリは同じ座標系にあります。

center_longitude

戻されるジオメトリの作成に使用する円の中心経度(度)を指定します。

center_latitude

戻されるジオメトリの作成に使用する円の中心緯度(度)を指定します。

radius

戻されるジオメトリの作成に使用する円の半径(m)を指定します。

arc_tolerance

ポリゴン・ジオメトリの作成に使用する数値を指定します。arc_toleranceパラメータ値の意味および使用上のガイドラインは、SDO_GEOM.SDO_ARC_DENSIFYファンクションのparamsパラメータ文字列のarc_toleranceキーワード値と同じです。ジオメトリに関連付けられた測定単位が、arc_toleranceパラメータ値に関連付けられます。(詳細は、「SDO_GEOMパッケージ(ジオメトリ)」SDO_GEOM.SDO_ARC_DENSIFYファンクションの「使用上の注意」を参照してください。)

start_azimuth

円弧の開始角(単位: 度)。真南から反時計回りに測定した値です。

start_azimuthおよびend_azimuthがnullの場合の動作は、近似処理するポリゴン・ジオメトリを戻し、指定した円に覆われる2番目の形式と同等です。

end_azimuth

円弧の終了角(単位: 度)。真南から反時計回りに測定した値です。orientationが明示的に指定されていない場合、円弧は、end_azimuthstart_azimuthより大きい場合は円のstart_azimuthからの反時計回りのセクションになり、end_azimuthstart_azimuthより小さい場合は時計回りのセクションになります。

start_azimuthおよびend_azimuthがnullの場合の動作は、近似処理するポリゴン・ジオメトリを戻し、指定した円に覆われる2番目の形式と同等です。

orientation

start_azimuthからend_azimuthまでの円のどの部分が使用されるかを制御します。これは、出力の方向ではなく、戻される出力の形状を制御します。戻されるポリゴンは常に反時計回りの方向で、戻される円弧は常にstart_azimuthからend_azimuthまでです。次のいずれかの値を使用できます。

  • 0またはnull (デフォルト): 自動(end_azimuthパラメータの説明を参照)。

  • 1または+1: 円弧はstart_azimuthからend_azimuthまで反時計回りに描画されます。

  • -1: 円弧はstart_azimuthからend_azimuthまで時計回りに描画されます。

arc

1に設定されている場合、結果は線になります。0またはnull (デフォルト)の場合、結果はポリゴンです。start_azimuthおよびend_azimuthでポリゴンの結果を持つ円のサブセットが指定された場合、戻されるポリゴンには円の中心が含まれます(つまり、扇形になります)。

使用上の注意

このファンクションの最初の形式を使用すると、真円が使用できない(Oracle Spatial and Graphの測地データで円が無効となる)場合に、指定された中心点の周囲に円状のポリゴンを作成できます。戻されるジオメトリのSDO_SRID値は8307となります(Longitude / Latitude (WGS 84))。

このファンクションの2番目と3番目の形式は、扇形を表す円弧またはポリゴンに対する折れ線近似値の作成に役立ちます。

開始と終了の方位値が指定された場合、これらは相互に等しくてはならず、360度以下の回転範囲にある必要があります。角度は-720から+720の範囲にある必要があります。

円は常に4つ以上の異なる頂点(正方形)で作成されます。

次の例では、Massachusetts州Concord市の中心に近い点の周囲に円状のポリゴンを戻します。ポリゴンの頂点の計算に使用されるradius値は100m、arc_tolerance値は5mです。

SELECT SDO_UTIL.CIRCLE_POLYGON(-71.34937, 42.46101, 100, 5)
   FROM DUAL;
 
SDO_UTIL.CIRCLE_POLYGON(-71.34937,42.46101,100,5)(SDO_GTYPE, SDO_SRID, SDO_POINT
--------------------------------------------------------------------------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(-71.34937, 42.4601107, -71.348653, 42.4602824, -71.348211, 42.4607321, -71.34
8211, 42.4612879, -71.348653, 42.4617376, -71.34937, 42.4619093, -71.350087, 42.
4617376, -71.350529, 42.4612879, -71.350529, 42.4607321, -71.350087, 42.4602824,
 -71.34937, 42.4601107))