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))