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

前
次

31.32 SDO_UTIL.SIMPLIFYVW

書式

SDO_UTIL.SIMPLIFYVW(
     geometry         IN SDO_GEOMETRY, 
     vertex_threshold IN NUMBER, 
     tolerance        IN NUMBER DEFAULT 0.0000005, 
     remove_loops     IN NUMBER DEFAULT 0 
     ) RETURN SDO_GEOMETRY;

説明

Visvalingham-Whyattアルゴリズムを使用して、しきい値に基づいて入力ジオメトリを簡略化します。

パラメータ

geometry

簡略化するジオメトリを指定します。

vertex_threshold

ジオメトリの簡略化に使用するしきい値を指定します(0から100までの割合の値として表します)。値が小さくなると、戻されるジオメトリは入力ジオメトリにより近くなり、値が大きくなると、戻されるジオメトリの点は少なくなります。

異なる値を試して、必要な簡略化レベルを決定することができます。

tolerance

許容差(「許容差」を参照)。値を指定しない場合のデフォルト値は、0.0000005です。

remove_loops

一部の線ジオメトリでは、線を簡略化すると、途中で自己交差するループとなることがあります。これは(線としては)有効なジオメトリですが、場合によっては、簡略化操作の結果にこれらのループが存在することは望ましくないことがあります。0の値(デフォルト)を指定すると、このようなループは除去されません。1の値(または、他の任意の正の数)を指定すると、このようなループはすべて除去され、単純な線セグメントが常に戻されます。

使用上の注意

SDO_UTIL.SIMPLIFYファンクションの「使用上の注意」を参照してください(同じように入力ジオメトリを簡略化していますが、異なるアルゴリズム(Douglas-Peucker)を使用しています)。

次の例では、SDO_UTIL.SIMPLIFYの例で使用されている線ストリング・ジオメトリと同じものを簡略化します。

SELECT SDO_UTIL.SIMPLIFYVW(
  SDO_GEOMETRY(
    2002,  -- line string, 2 dimensions (X,Y)
    NULL,
    NULL,
    SDO_ELEM_INFO_ARRAY(1,2,1), -- one line string, straight segments
    SDO_ORDINATE_ARRAY(
      2,2,   -- Starting point
      2,4,
      8,4,
      12,4,
      12,10,
      8,10,
      5,14)  -- Ending point
  ),
  80, -- threshold "percentage" value for geometry simplification
  0.5  -- tolerance
) FROM DUAL;

SDO_UTIL.SIMPLIFYVW(SDO_GEOMETRY(2002,--LINESTRING,2DIMENSIONS(X,Y)NULL,NULL,SDO
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
2, 2, 12, 4, 5, 14))

この場合(vertex_threshold値として80を使用)に結果として生成されるジオメトリには、SDO_UTIL.SIMPLIFYの例と同じ点が含まれますが、メジャー次元情報は含まれません(つまり、頂点は2,2、12,4および5,14です)。vertex_threshold値を大幅に低く設定すると、結果としてより多くの頂点を含むジオメトリが生成される可能性があります。