13.16 SDO_GEOR_UTL.get_rasterTile

形式

SDO_GEOR_UTL.get_rasterTile(
  table_name          IN VARCHAR2,
  geor_col_name       IN VARCHAR2,
  simple_predicate    IN MDSYS.SDO_STRING_ARRAY DEFAULT NULL,
  tile_x              IN NUMBER,
  tile_y              IN NUMBER,
  tile_zoom           IN NUMBER,
  outSRID             IN NUMBER DEFAULT 3857,
  bounds              IN MDSYS.SDO_NUMBER_ARRAY DEFAULT MDSYS.SDO_NUMBER_ARRAY(-180, -85.051129, 180, 85.051129),
  zoom_range          IN MDSYS.SDO_RANGE DEFAULT MDSYS.SDO_RANGE(0,22),
  tile_extent         IN MDSYS.SDO_NUMBER_ARRAY DEFAULT MDSYS.SDO_NUMBER_ARRAY(256),
  google_ts           IN BOOLEAN DEFAULT TRUE,
  out_format          IN VARCHAR2 DEFAULT ‘PNG’,
  layer_numbers       IN VARCHAR2 DEFAULT ‘1-3’,
  mosaic_param        IN VARCHAR2 DEFAULT NULL,
  nodata_mapping      IN SDO_NUMBER_ARRAYSET DEFAULT NULL,
  image_processing    IN VARCHAR2 DEFAULT NULL,
  bg_values           IN MDSYS.SDO_NUMBER_ARRAY DEFAULT NULL
) RETURN BLOB;

または

SDO_GEOR_UTL.get_rasterTile(
  georasters          IN VARCHAR2,
  tile_x              IN NUMBER,
  tile_y              IN NUMBER,
  tile_zoom           IN NUMBER,
  outSRID             IN NUMBER DEFAULT 3857,
  bounds              IN MDSYS.SDO_NUMBER_ARRAY DEFAULT MDSYS.SDO_NUMBER_ARRAY(-180, -85.051129, 180, 85.051129),
  zoom_range          IN MDSYS.SDO_RANGE DEFAULT MDSYS.SDO_RANGE(0,22),
  tile_extent         IN MDSYS.SDO_NUMBER_ARRAY DEFAULT MDSYS.SDO_NUMBER_ARRAY(256),
  google_ts           IN BOOLEAN DEFAULT TRUE,
  out_format          IN VARCHAR2 DEFAULT ‘PNG’,
  layer_numbers       IN VARCHAR2 DEFAULT ‘1-3’,
  mosaic_param        IN VARCHAR2 DEFAULT NULL,
  nodata_mapping      IN SDO_NUMBER_ARRAYSET DEFAULT NULL,
  image_processing    IN VARCHAR2 DEFAULT NULL,
  bg_values           IN MDSYS.SDO_NUMBER_ARRAY DEFAULT NULL
) RETURN BLOB;

説明

GeoRasterオブジェクトまたは一連のGeoRasterオブジェクト(仮想モザイク)から、ラスター・タイルをBLOBで生成します。

デフォルトでは、生成されるタイルは、OGC (Open Geospatial Consortium)のWebMercatorQuadタイル処理方法に基づいています。詳細は、「Common TileMatrixSet definitions」を参照してください。

パラメータ

table_name

SDO_GEORASTERオブジェクト型の列を含む有効な表またはビューの名前。

geor_col_name

GeoRasterオブジェクトを取得するSDO_GEORASTER型列の名前。

simple_predicate

述語を形成する3つの要素(operand、operator、value)で構成される書式設定されたSDO_STRING配列。

3つの組を形成する要素については、次の点に注意してください。

  • 3つの要素の1番目であるoperandは、表(table_name)内の有効な列名である必要があります。列名が有効でない場合は、例外が発生します。
  • 3つの要素の2番目はoperatorで、次の演算子の1つのみがサポートされています:
    • =, !=, <, >, <=, >=
    • IS [NOT] NULL
    • AND
    • [NOT] LIKE
  • 3つの要素の3番目であるvalueは、文字列または数値である必要があります。たとえば、'answer'は文字列として扱われます。一方で、'42'42は両方とも数値として扱われます。
  • 3つの要素が複数ある場合は、AND演算子で結合された複数の述語が形成されます。たとえば、次のSIMPLE_PREDICATE配列があるとします。

    SIMPLE_PREDICATE => sdo_string_array('GEORID', '>=', '100', 'GEORID', '<', '200')

    これは、"GEORID">=100かつ"GEORID" < 200という述語を形成します。

georasters

1つ以上のGeoRasterオブジェクトを返すカーソル。

tile_x

指定されたズーム・レベル(tile_zoom)でフェッチされるタイルのX座標。

このパラメータの有効最小値はゼロです。有効な最大値は(2^tile_zoom)-1です。

tile_y

指定されたズーム・レベルでフェッチされるタイルのY座標。

このパラメータの有効最小値はゼロです。有効な最大値は(2^tile_zoom)-1です。

tile_zoom

現在の取得のズーム・レベル。このズーム・レベルで取得できるタイルの数(2^tile_zoom x 2^tile_zoom)を決定します。その値は、zoom_rangeで定義された範囲内である必要があります。

outSRID

生成されるタイルのSRID。

デフォルト値は「3857」です。

bounds

マップ領域全体の左下隅および右上隅の座標(SRIDは4326)。

デフォルト値は、Maplibreの表示範囲((-180, -85.051129, 180, 85.051129))です。

zoom_range

有効なズーム・レベルの範囲。

デフォルトの範囲は[0,22]です。

tile_extent

生成されるタイルのピクセル単位の寸法(高さ、幅)。

sdo_number_arrayに数値を1つのみ指定した場合、生成されるタイルは正方形になります。それ以外の場合、生成されるタイルは長方形になります。デフォルトのタイル・サイズは256x256です。

google_ts

OGC WebMercatorQuadタイル処理スキーマを使用するかどうかを示すブール値。デフォルト値はTRUE。

タイル住所の読取り時には、次の2つのタイル処理方法がサポートされています。

  • OGC WebMarcatorQuad (デフォルト): このタイル処理方法では、タイル座標系の基点(0,0)は北西の角にあります。Xタイル座標はタイルが西から東に読み取られるにつれて増加します。Yタイル座標はタイルが北から南に読み取られるにつれて増加します。
  • OSGeo Tile Map Service (TMS): このタイル処理方法では、タイル座標系の基点(0,0)は南西の角にあります。Xタイル座標はタイルが西から東に読み取られるにつれて増加しますが、Yタイル座標はタイルが南から北に読み取られるにつれて増加します。
out_format

生成されるタイルのイメージ形式。

有効な値は、"PNG""JPEG"および"TIFF"です。デフォルト値は"PNG"です。

layer_numbers

タイルの生成に使用されるGeoRasterオブジェクトのバンド。

デフォルト値は'1-3'で、これはラスターの最初の3つのバンドを意味します。

mosaic_param

タイルの生成に使用されるモザイク・パラメータ。

「SDO_GEOR_AGGR.mosaicSubset」mosaicParamパラメータを参照してください。

nodataMapping

生成されたタイルでNODATAセル値をどのようにレンダリングするかを指定します。

このパラメータの形式は、数値セットの配列です。配列の各要素は、4つの数値のセット(val1val2val3val4)です。

  • val1およびval2: NODATAセル値の範囲を[val1, val2]として指定します。つまり、この範囲に含まれるセル値はNODATAセル値とみなされます。
  • val3: 指定されたNODATAセル値の置換値を指定します。置換が不要な場合は、val3をNULLにできます。
  • val4: 指定できる値は、1または0です。
    • 1: これは、指定されたNODATAセルが生成されたタイルで透明としてレンダリングされることを意味します。
    • 0: これは、指定されたNODATAセルが生成されたタイルで透明としてレンダリングされないことを意味します。
imageProcessing

取得したラスター・データに適用するイメージ処理方法を指定します。

有効な値は、次のとおりです。

  • "stretch": ラスター・データ・セル値の範囲を[0,255]にストレッチします。
  • "piecewisestretch": ラスター・データ・セル値の範囲を[0,255]にストレッチしますが、セル値が低いイメージ領域の明度を高めたり、コントラストを強くします。
  • "normalize": ラスター・データ・セル値を処理して、平均値が128、標準偏差が64となるようにします。
  • "equalize": ヒストグラムに基づいて、ラスター・データ・セルに均等化を適用します。
  • "terrainRGB": 1バンドDEM (数値標高モデル)ラスター・データに基づいて、Mapbox TerrainRGBイメージを生成します。これは、MaplibreまたはMapboxでラスターDEMソースを構成するために使用されます。

"terrainRGB"を除くすべてのイメージ処理方法は、table_namegeor_col_namesimple_predicateまたはgeorastersパラメータで定義された仮想モザイクの統計に基づきます。

bg_values

生成されたタイルの空き領域の背景値。

SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)または生成されたタイルのバンド寸法サイズ(各バンドそれぞれに異なる入力値を使用)のいずれかであることが必要です。デフォルトの背景値はゼロです。

使用上のノート

SDO_GEOR_UTL.get_rasterTileファンクションには2つの形式があります。一方の形式では、table_namegeor_col_nameおよびsimple_predicateパラメータの組合せを使用して、仮想モザイクを定義します。他方の形式では、カーソルのgeorastersパラメータによって返されたGeoRasterオブジェクトを使用して、仮想モザイクを定義します。どちらの場合も、仮想モザイクにはGeoRasterオブジェクトを1つのみ含めることができます。このファンクションのどちらの形式でも、仮想モザイクからラスター・データを取得し、ラスター・タイルをイメージ形式で生成し、BLOBとして返します。

このファンクションのデフォルト・パラメータ値は、OGC WebMercatorQuadタイル処理方法を使用するように設定されています。つまり、生成されるタイルのサイズは256 x 256、SRIDは3857、PNG形式で、マップ境界はWGS84 (-180, -85.051129, 180, 85.051129)、最大ズーム・レベルは22です。

タイル生成では、2バンド・ラスター・データは、2番目のバンドをアルファ・バンドとする1バンド・イメージとみなされます。また、4バンド・ラスター・データは、4番目のバンドをアルファ・バンドとする3バンド・イメージとみなされます。ソース・ラスターにバンドが1つあり、colormap表またはgrayscale表がGeoRasterオブジェクト・メタデータに格納されている場合、colormap表またはgrayscale表が生成されたイメージ・タイルに自動的に追加されます。

指定されたタイルの場所(tile_x, tile_y, tile_zoom)にラスター・データがなく、イメージ処理方法として'terrainRGB'が指定されていない場合は、完全に透明なPNGタイルが返されます。

ノート:

Autonomous AI Database環境を使用している場合は、この機能に対してOracle Javaを有効にする必要があります。詳細は、Oracle Javaの有効化を参照してください。

次の例では、表world_imageの列georastergeorid=2の行にあるGeoRasterオブジェクトから、ズーム0にラスター・タイルを生成します:

select sdo_geor_utl.get_rastertile(‘world_image’, ‘georaster’,
      sdo_string_array(‘georid’, ‘=’, ‘2’), 0, 0, 0) from dual;

次の例では、指定されたモザイク・パラメータおよびイメージ処理方法を使用して、GeoRaster表landsat_imagesの仮想モザイクからラスター・タイルを生成します:

select sdo_geor_utl.get_rastertile(‘landsat_images’, ‘image’, null, 10, 24, 6, mosaic_param=>’resFilter=false,
 commonPointRule=high’, image_processing=>’normalize’, bg_values=>sdo_number_array(255, 0, 0)) from dual;

次の例では、DEM表dem_tableからMapbox TerrainRGBタイルを生成します:

select sdo_geor_utl.get_rastertile(‘dem_table’, ‘raster’, sdo_string_array(‘id’, ‘=’, ‘1’), 1, 1, 1,
   image_processing=>’TerrainRGB’) from dual;