7.23 SDO_GEOR.generateSpatialExtent
形式
SDO_GEOR.generateSpatialExtent( georaster IN SDO_GEORASTER, height IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
説明
GeoRasterオブジェクトの空間エクステント(フットプリント)を含む空間ジオメトリを生成します。
使用上のノート
戻される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))
親トピック: SDO_GEORパッケージのリファレンス