7.23 SDO_GEOR.generateSpatialExtent

形式

SDO_GEOR.generateSpatialExtent(
     georaster  IN SDO_GEORASTER, 
     height     IN NUMBER DEFAULT NULL 
     ) RETURN SDO_GEOMETRY;

説明

GeoRasterオブジェクトの空間エクステント(フットプリント)を含む空間ジオメトリを生成します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

height

3次元(X, Y, Z)の地理参照で使用するZの値を指定します。

使用上のノート

戻されるSDO_GEOMETRYオブジェクトは、GeoRasterオブジェクトのモデル座標系に基づいています。GeoRasterオブジェクトが地理参照されていない場合、SDO_GEOMETRYオブジェクトのSDO_SRID値はNULLであり(つまり、フットプリント・ジオメトリはセル空間にある)、地理参照されている場合は、SDO_GEOMETRYオブジェクトのSDO_SRID値はモデルSRIDになります。具体的には、次のようになります:

  • GeoRasterオブジェクトが地理参照されていない場合、またはモデル座標系が投影座標の場合、空間エクステント・オブジェクトは8つの境界点から導出される単一のポリゴンです。

  • モデル座標系が測地座標系の場合、空間エクステントはオブジェクトの空間フットプリントに応じて圧縮されます。フットプリントの領域が地表面積の半分以下の場合、結果は単一の測地ポリゴンです。それ以外の場合、生成された空間エクステント・オブジェクトとして測地MBRが戻され、この戻されたオブジェクトはOracle Spatialの検証ルールに従って無効なジオメトリになりますが、索引および問合せ操作はこの戻されたオブジェクトで動作します。

フットプリントは、モデル空間の領域全体を含むように、GeoRasterオブジェクトのモデル座標の位置(CENTERまたはUPPERLEFT)に基づいて自動的に調整されます。地理参照ではない場合、CENTERがモデル座標の位置のデフォルトです。

モデル座標系が3次元の場合、生成される空間エクステントは3次元のジオメトリです。生成された値に基づいて空間索引を作成するには、索引をGeoRasterオブジェクトのspatialExtent属性に保存する前に、2次元のジオメトリに変換する必要があります。異なる次元間の変換については、『Oracle Spatial開発者ガイド』を参照してください。

このファンクションはGeoRasterオブジェクトの空間エクステントを設定しません(「spatialExtent属性」に示すspatialExtent属性を参照)。空間エクステントの設定の詳細は、「空間エクステントの生成と設定」を参照してください。

georasterがNULLの場合、このファンクションはNULLのSDO_GEOMETRYオブジェクトを戻します。georasterが無効な場合、例外が発生します。

次の例では、Z次元(高さ)の値が10の3次元空間エクステントが、地理3D座標系4327(モデルSRID)内に生成されます。(出力形式は多少変更されています。)

SELECT SDO_GEOR.generateSpatialExtent(georaster,10) spatialExtent
  FROM georaster_table where georid=10;
 
SPATIALEXTENT(A.GEORASTER,10)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_IN
----------------------------------------------------------------------------------
SDO_GEOMETRY(3003, 4327, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(.181818182, 1.1627907, 10, 12.1228111, 1.07010227, 10, 19.3902574, 1.07010229, 10, 25.1482989, 1.07010229, 10, 30.0714774, 1.07010229,
10, 34.4500035, 1.07010229, 10, 38.3920079, 1.07010229, 10, 42.0490801,
1.07010229, 10, 45.4612165, 1.07010229, 10, 48.6719786, 1.07010229, 10,
53.6193472, 1.07010229, 10, 53.6193472, 12.346373, 10, 53.6178888, 15.3903048,
10, 53.6178888, 18.3032341, 10, 50.6322061, 18.3032341, 10, 47.5331761,
18.3032341, 10, 44.2541078, 18.3032341, 10, 40.7594212, 18.3032341, 10, 37,
18.3032341, 10, 32.9046537, 18.3032341, 10, 28.3630834, 18.3032341, 10,
23.1869539, 18.3032341, 10, 17, 18.3032341, 10, -2.220E-16, 18.3032341, 10, 0,
16.3247208, 10, -2.220E-16, 13.6133114, 10, .181818182, 1.1627907, 10))

次の例では、GEORASTER_TABLE表のGEORASTER列に含まれているGeoRasterオブジェクトの空間エクステント・ジオメトリを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.generateSpatialExtent(georaster) spatialExtent
  FROM georaster_table WHERE georid=2;
 
SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINA
--------------------------------------------------------------------------------
 
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(0, 0, 256, 0, 511, 0, 511, 256, 511, 511, 256, 511, 0, 511, 0, 256, 0, 0))
 
SET NUMWIDTH 20
SELECT sdo_geor.generateSpatialExtent(georaster) spatialExtent
  FROM georaster_table WHERE georid=4;
 
SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO,
SDO_ORDINA
--------------------------------------------------------------------------------
 
SDO_GEOMETRY(2003, 82263, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_AR
RAY(1828466.0909315, 646447.1932945, 1828466.0909315, 644479.85524, 1828466.0909
315, 642512.5171855, 1830433.428986, 642512.5171855, 1832400.7670405, 642512.517
1855, 1832400.7670405, 644479.85524, 1832400.7670405, 646447.1932945, 1830433.42
8986, 646447.1932945, 1828466.0909315, 646447.1932945))