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

前
次

23.3 SDO_GEOM.SDO_ARC_DENSIFY

書式

SDO_GEOM.SDO_ARC_DENSIFY(     
  geom    IN SDO_GEOMETRY,      
  dim     IN SDO_DIM_ARRAY       
  params  IN VARCHAR2      
) RETURN SDO_GEOMETRY;

または

SDO_GEOM.SDO_ARC_DENSIFY(
  geom    IN SDO_GEOMETRY,      
  tol     IN NUMBER       
  params  IN VARCHAR2      
) RETURN SDO_GEOMETRY;

説明

入力ジオメトリの各円弧が直線で構成される円弧の近似値に変更され、各円が円に近い一連の直線で構成されるポリゴンに変更されるジオメトリを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。

dim

geomに対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。

tol

許容差(「許容差」を参照)。

params

円弧の許容差および単位値(オプション)を引用符で囲んだ文字列を指定します。書式および意味については、「使用上の注意」を参照してください。

使用上の注意

円または円弧を含むジオメトリが投影座標系にある場合、このファンクションを使用してこれらのジオメトリを通常のポリゴンに稠密化できます。その後、その直線行ポリゴン・ジオメトリを空間操作に使用するか、またはこれらのジオメトリを投影座標系または測地座標系に変換できます。

paramsパラメータは、arc_toleranceキーワード、およびarc_tolerance値に関連付けられた測定単位を識別するunitキーワードを含むことができる、引用符で囲んだ文字列です。次に例を示します。

'arc_tolerance=0.05 unit=km'

arc_toleranceキーワードは、ジオメトリの各円弧について、円弧の表面と、円弧の開始点と終了点とを結ぶ直線の間の、垂直線の最大長を指定します。図23-1に、長さがA点とB点間の円弧のarc_tolerance値である線を示します。

arc_toleranceキーワードの値は、ジオメトリに関連付けられた許容差より大きくする必要があります。(arc_toleranceのデフォルト値は、許容差の20倍です。)arc_toleranceキーワードの値を増やすと、結果のポリゴンの辺数が減少し、面積が小さくなります。arc_toleranceキーワードの値を減らすと、結果のポリゴンの辺数が増加し、面積が大きくなります(ただし、元のジオメトリより大きくなることはありません)。

unitキーワードを指定する場合、値はMDSYS.SDO_DIST_UNITS表のSDO_UNIT値('unit=KM'など)である必要があります。unitキーワードを指定しない場合、ジオメトリに関連付けられた測定単位が使用されます。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。

次の例では、cola_dの円弧を稠密化した結果であるジオメトリ(円)を戻します。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)

-- Arc densification of the circle cola_d
SELECT c.name, SDO_GEOM.SDO_ARC_DENSIFY(c.shape, m.diminfo, 
                                       'arc_tolerance=0.05') 
  FROM cola_markets c, user_sdo_geom_metadata m 
  WHERE m.table_name = 'COLA_MARKETS' AND m.column_name = 'SHAPE' 
  AND c.name = 'cola_d';

NAME
--------------------------------
SDO_GEOM.SDO_ARC_DENSIFY(C.SHAPE,M.DIMINFO,'ARC_TOLERANCE=0.05')(SDO_GTYPE, SDO_
--------------------------------------------------------------------------------
cola_d
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(8, 7, 8.76536686, 7.15224093, 9.41421356, 7.58578644, 9.84775907, 8.23463314,
 10, 9, 9.84775907, 9.76536686, 9.41421356, 10.4142136, 8.76536686, 10.8477591,
8, 11, 7.23463314, 10.8477591, 6.58578644, 10.4142136, 6.15224093, 9.76536686, 6
, 9, 6.15224093, 8.23463314, 6.58578644, 7.58578644, 7.23463314, 7.15224093, 8,
7))