7.46 SDO_GEOR.getCellCoordinate
形式
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, modelCoordinate IN SDO_GEOMETRY, subCell IN VARCHAR2 DEFAULT NULL, height IN NUMBER DEFAULT NULL, vert_id IN NUMBER DEFAULT NULL, ellipsoidal IN VARCHAR2 DEFAULT NULL ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, modelCoordinate IN SDO_GEOMETRY, cellCoordinate OUT SDO_GEOMETRY, subCell IN VARCHAR2 DEFAULT NULL, height IN NUMBER DEFAULT NULL, vert_id IN NUMBER DEFAULT NULL, ellipsoidal IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, sourceCellCoordinate IN SDO_NUMBER_ARRAY, targetPyramidLevel IN NUMBER, subCell IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, sourceCellCoordinate IN SDO_GEOMETRY, targetPyramidLevel IN NUMBER, subCell IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_GEOMETRY;
説明
最初の2つの構文を使用すると、指定したモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標が戻されます。最後の2つの構文を使用すると、ピラミッド・レベル間のセル座標変換が行われます。
2つ目の構文はプロシージャであり、それ以外の構文はファンクションであることに注意してください。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
modelCoordinate
で指定するセルを含むピラミッド・レベルを指定します。 - modelCoordinate
-
変換するジオメトリを指定します。
- cellCoordinate
-
GeoRasterオブジェクトのセル空間内の出力ジオメトリを指定します。
- sourcePyramidLevel(最後の2つの構文の場合)
-
入力セルの座標が関連付けられているピラミッド・レベルを指定します。
- sourceCellCoordinate(最後の2つの構文の場合)
-
変換する入力セルの座標を指定します。2次元ジオメトリを指定してください(このセルのSDO_SRID値はNULLである必要があります)。
- targetPyramidLevel(最後の2つの構文の場合)
-
戻される(ターゲットの)GeoRasterオブジェクトのピラミッド・レベルを指定します。
- subCell
-
サブピクセル(浮動)値でセル座標を戻すかどうかを指定する文字列(
TRUE
またはFALSE
)を指定します。 - height
-
3次元(X, Y, Z)の地理参照で使用するZの値を指定します。
- vert_id
-
垂直参照IDを指定する番号を指定します。
- ellipsoidal
-
垂直参照系が楕円体であるか(
TRUE
)、楕円体でないか(FALSE
)を指定する文字列を指定します。
使用上のノート
このファンクションの最初の2つの構文は、指定されたモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標を戻します。
-
最初の(
cellCoordinate
パラメータを指定しないファンクション)構文は、地上座標系の点(経度と緯度のペア)を、GeoRasterイメージ上の点の位置に変換する場合に使用します。 -
2つ目の(
cellCoordinate
パラメータを指定するプロシージャ)構文は、地上座標系のジオメトリを、GeoRasterオブジェクトのラスター空間に存在するジオメトリの位置に変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を、地上座標系からGeoRasterオブジェクトのラスター空間に変換することで行われます。
このファンクションの最後の2つの構文を使用すると、ピラミッド・レベル間でセル座標の変換が行われます。sourceCellCoordinate
パラメータがSDO_NUMBER_ARRAY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にある点の<行,列>のペアです。sourceCellCoordinateパラメータがSDO_GEOMETRY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にあるジオメトリです。入力されたジオメトリの各頂点の座標は、指定したピラミッド・レベルに従って変換されます。
-
最初の(
cellCoordinate
パラメータを指定しない)構文は、地上座標系の点(経度と緯度のペア)を、GeoRasterイメージ上の点の位置に変換する場合に使用します。 -
2つ目の(
cellCoordinate
パラメータを指定する)構文は、地上座標系のジオメトリを、GeoRasterオブジェクトのラスター空間に存在するジオメトリの位置に変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を、地上座標系からGeoRasterオブジェクトのラスター空間に変換することで行われます。
modelCoordinate
ジオメトリのSDO_SRID値がNULLの場合、このパラメータで指定されるのはラスター空間のジオメトリであり、NULL以外の場合は、地上座標系の点が指定されます。地上座標系がモデル座標系とは異なる場合は、処理が実行される前に、modelCoordinate
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。
このファンクションは、指定されたセル座標の点に関連付けられたモデル(地上)座標系の座標を含む点ジオメトリを戻すSDO_GEOR.getModelCoordinateと対照的です。
例
次の例では、指定したGeoRasterオブジェクトのモデル座標値(32343.64,7489527.23)に関連付けられたラスター・イメージのセル座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getCellCoordinate(georaster, 0, sdo_geometry(2001,82394, sdo_point_type(32343.64,7489527.23,null), null,null)) coord FROM georaster_table WHERE georid=4; COORD -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(100, 100)
次の例では、指定したジオメトリのピラミッド・レベル2と関連付けられたピラミッド・レベル0のジオメトリを戻します。この例では、ジオメトリが地理参照されておらず(モデル座標の位置がCENTER)、ultCoordinateが(100,-100,0)であることを想定しています。
SELECT sdo_geor.getCellCoordinate(georaster, 2, sdo_geometry(2003,NULL,NULL,sdo_elem_info_array(1,1003,3), sdo_ordinate_array(100.8,-100.2,220.15,0.3)), 0, 'true') coord FROM georaster_table WHERE georid=1; COORD -------------------------------------------------------------------------------- SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR AY(104.7, -99.3, 582.1, 302.7))
親トピック: SDO_GEORパッケージのリファレンス