35.58 SDO_UTIL.H3SUM_VECTORTILE

書式

SDO_UTIL.H3SUM_VECTORTILE(
  h3_table         IN VARCHAR2,
  levelnum         IN NUMBER DEFAULT NULL,
  tile_x           IN NUMBER,
  tile_y           IN NUMBER,
  tile_zoom        IN NUMBER,
  layer_name       IN VARCHAR2 DEFAULT 'LAYER',
  tile_extent      IN NUMBER DEFAULT 4096,
  google_ts        IN BOOLEAN DEFAULT TRUE,
  max_features     IN NUMBER DEFAULT 20000
) RETURN BLOB;

または

FUNCTION H3SUM_VECTORTILE(
  h3_table         IN VARCHAR2,
  levelnum         IN NUMBER DEFAULT NULL,
  tile_x           IN NUMBER,
  tile_y_pbf       IN VARCHAR2,
  tile_zoom        IN NUMBER,
  layer_name       IN VARCHAR2 DEFAULT 'LAYER',
  tile_extent      IN NUMBER DEFAULT 4096,
  google_ts        IN BOOLEAN DEFAULT TRUE,
  max_features     IN NUMBER DEFAULT 20000
) RETURN BLOB;

説明

SDO_UTIL.H3SUM_CREATE_TABLEで作成されたH3サマリー表から、指定されたMVTベクター・タイルを作成して返します。

パラメータ

h3_table

問い合せるH3サマリー表。

levelnum

返すH3レベル。levelnumが、H3サマリー表の作成時に指定されたmax_H3_levelより大きい場合、データは返されません。指定しない場合、tile_zoom値に基づくデフォルト値が使用されます。

tile_x

フェッチするタイルの原点のX座標。

このパラメータの有効最小値はゼロです。有効最大値は、指定されたズームに依存し、max(X) = (2^tile_zoom) - 1で計算できます。有効範囲外のX座標を指定すると、例外が発生します。

tile_y

フェッチするタイルの原点のY座標(NUMBER形式)。

このパラメータの有効最小値はゼロです。有効最大値は、指定されたズームに依存し、max(Y) = (2^tile_zoom) - 1で計算できます。有効範囲外のY座標を指定すると、例外が発生します。

tile_y_pbf

tile_y_pbf値は、数値とその後の任意のファイル拡張子を指定するVARCHAR2文字列です。Y縦座標値は、文字列内のファイル拡張子を削除した後に抽出されます。たとえば、文字列値‘23.pbf’または‘23.XYZ’を考えてみます。次に、23がY座標値として抽出され、'.'の後のすべてが削除され、無視されます。

tile_zoom

地図の分割に必要なタイルの数を決定します。これらのセグメントは、地図全体を読み取ることなく、より高い解像度で結合できます。

たとえば、ゼロのtile_zoomは、詳細がそれほど表示されずに、地図全体が単一のタイルとなります。ntile_zoomは、地図を2^n x 2^n個のタイル(つまり、X軸に沿ったタイルの数にY軸に沿ったタイルの数を乗算した数)に分割します。たとえば、8tile_zoomでは、65,536個のタイルになります。nの値が大きいほど、タイル内の詳細度が高くなることを意味します。有効範囲外のパラメータ値では例外が発生することに注意してください。

layer_name

ベクター・タイルのレイヤーの名前。

これはオプションのパラメータです。ベクター・タイルでは、デフォルトの'LAYER'値を持つ単一のレイヤーのみがサポートされます。

tile_extent

タイルの幅と高さを表す整数座標。

これはオプションのパラメータです。デフォルト値の4096は、ベクター・タイルの高さが4096単位で、幅が4096単位であることを示します。これらの単位の実際のサイズは、タイルのズーム・レベルによって異なります。タイル内の2つの座標間の距離は、ズーム・レベル0のほうがズーム・レベル12よりもはるかに大きくなります。標準以外のタイル処理方法を使用する場合のみ、デフォルトのパラメータ値を変更することをお薦めします。

google_ts

Googleタイル処理方法が使用されているかどうかを示すブール値。

これはオプションのパラメータです。デフォルト値はTRUEで、これはGOOGLEタイル処理方法を示します。

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

  • GOOGLE (デフォルト): このタイル処理方法では、タイルの原点(X,Y)が北西の角になります。X座標はタイルが西から東に読み取られるにつれて増加します。Y座標はタイルが北から南に読み取られるにつれて増加します。
  • TMS: このタイル処理方法では、タイルの原点(X,Y)が南西の角になります。X座標はタイルが西から東に読み取られるにつれて増加しますが、Y座標はタイルが南から北に読み取られるにつれて増加します
max_features

レイヤーに含まれるフィーチャの最大数。

これはオプションのパラメータであり、デフォルト値は20000です。

ベクター・タイルはレイヤーで構成されます。レイヤーはフィーチャで構成されます。フィーチャは、タイル・エンベロープと相互作用するジオメトリおよびその属性列です。州全体または国全体を覆う大規模なタイル・エンベロープの場合、建物の数とその属性は非常に多くなる可能性があります。過剰な数のフィーチャの処理は、CPUとメモリーの両方でリソースを大量に消費する可能性があります。

したがって、このパラメータを使用すると、レイヤーに含めるフィーチャの最大数を制御できます。

使用上のノート

SDO_UTIL.H3SUM_VECTORTILEファンクションでは、特定のズーム・レベルで、どちらもNUMBER形式のX座標とY座標、またはNUMBER形式のX座標と.PBF接尾辞が付いたVARCHAR2形式のY座標を受け入れることができます。

どちらの場合も、H3サマリー表のデータは、指定されたタイルに表示されるH3セル(六角形と五角形)の境界のポリゴンのセットとして、関連付けられた列の値とともに戻されます。H3サマリー表がレベル15未満に制限されていた場合、サマリー表には、指定したレベルを超える値に対して返されるデータは存在しないため、空のタイルが返されます。タイル・パラメータ値とレンダリング制限は、SDO_UTIL.GET_VECTORTILEと同じです。

次の例では、ビジュアライゼーション・ソフトウェアが地図をレンダリングするためにSDO_UTIL.H3SUM_VECTORTILEファンクションを使用する方法について説明します。

SQL> SELECT dbms_lob.getlength(SDO_UTIL.H3SUM_VECTORTILE(H3_TABLE=>'WORLD_H3',LEVELNUM=>1,
        TILE_X=>2,TILE_Y=>2,TILE_ZOOM=>2)) "BLOBSIZE" FROM DUAL;

  BLOBSIZE
----------
     14304