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
は、詳細がそれほど表示されずに、地図全体が単一のタイルとなります。n
のtile_zoom
は、地図を2^n x 2^n
個のタイル(つまり、X軸に沿ったタイルの数にY軸に沿ったタイルの数を乗算した数)に分割します。たとえば、8
のtile_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