7.120 SDO_GEOR.setColorMap
形式
SDO_GEOR.setColorMap( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, colorMap IN SDO_GEOR_COLORMAP);
説明
GeoRasterオブジェクトのレイヤーのカラーマップを設定します。または、colorMapパラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
操作を実行するレイヤーの番号を指定します。
- colorMap
-
SDO_GEOR_COLORMAP型のカラーマップ・オブジェクトを指定します(「SDO_GEOR_COLORMAPオブジェクト型」を参照)。
使用上のノート
指定するカラーマップ・オブジェクトは、次の条件に該当する必要があります。
-
cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性があり、その値の範囲内にある。 -
赤、緑、青およびアルファ値が、0から255の整数である。
-
cellValue配列に含まれるエントリが重複していない。 -
cellValue配列のエントリが、昇順である。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
カラーマップを作成するか、または既存のGeoRasterオブジェクトからカラーマップを取得して使用できます。GeoRasterオブジェクトのレイヤーのカラーマップを戻すには、SDO_GEOR.getColorMapファンクションを使用します。
layerNumberがNULLか、GeoRasterオブジェクトに対して無効である場合、colorMapの中に赤、緑、青のいずれかが存在する場合、アルファ値がNULLか、範囲外である場合、cellValue配列の中に重複値が存在する場合、cellValue値のいずれかがNULL、範囲外または順序が適切でない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップを設定します。ここでは、GeoRasterオブジェクトがビットマップであると想定しています。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE
grobj sdo_georaster;
cmobj sdo_geor_colormap;
BEGIN
cmobj := sdo_geor_colormap(sdo_number_array(0, 1),
sdo_number_array(0, 255),
sdo_number_array(0, 0),
sdo_number_array(0, 0),
sdo_number_array(255, 255));
SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
sdo_geor.setColorMap(grobj, 2, cmobj);
UPDATE georaster_table SET georaster = grobj WHERE georid=4;
COMMIT;
END;
/親トピック: SDO_GEORパッケージのリファレンス