すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_BuildPyramid

最終更新日:Sep 26, 2024

このトピックでは、空間ジオメトリデータテーブルのベクトルピラミッドを作成してデータの表示を高速化するST_BuildPyramid関数について説明します。

構文

boolean ST_BuildPyramid(cstring table, cstring geom, cstring fid, cstring config)

パラメーター

パラメーター

説明

テーブル

空間ジオメトリデータテーブルの名前。

geom

ジオメトリフィールドの名前。

fid

要素IDフィールドの名前。

config

ピラミッドの作成に使用されるフィールド。 これらのフィールドはJSON文字列として指定されます。

次の表に、configパラメーターのフィールドを示します。

フィールド

データ型

デフォルト値

説明

name

String

テーブル名と同じ

ピラミッドの名前。

パラレル

int

0

ピラミッドを作成するために並行して実行できるタスクの最大数。 max_prepared_transactionsパラメーターも指定する必要があります。 parallelパラメーターを0に設定した場合、並列タスクの最大数は制限されません。

tileSize

int

1024

ピラミッドのタイルサイズ。 有効な値は0より大きく、4096より小さい必要があります。

tileExtend

int

8

ピラミッドのタイル拡張サイズ。 有効な値は0より大きくなければなりません。

userExtent

array[double]

null

定義する地理的なバインド。 このパラメーターの値はJSON文字列です。 このJSON文字列は、minx、miny、maxx、maxyの4つのフィールドで構成されています。 このパラメーターを [] に設定すると、値はnullになります。

splitSize

int

10000

インデックスノードを分割できる要素の最大数。 このパラメータの値が大きいほど、ピラミッドがまばらであることを示します。

maxLevel

int

16

ピラミッド内のレイヤーの最大数。 有効な値: 0〜20。

sourceSRS

int

-1

空間ジオメトリデータテーブル内のソースデータの座標系。 このパラメーターを指定しない場合、システムはメタデータ内の空間参照識別子 (SRID) を読み取ります。

destSRS

int

3857

タイトル座標系のEPSGコード。 EPSG 3857とEPSG 4326のみがサポートされています。

buildRules

array [オブジェクト]

null

ピラミッドの作成に基づいたルール。 複数のルールを指定できます。 各ルールは、levelvalueの2つの部分で構成されています。

レベル

array[int]

なし

指定されたルールが適用されるピラミッドレイヤー。

object

なし

指定されたルールの値。

フィルター

String

なし

PostgreSQLでデータをフィルタリングするために使用される式。

attrFields

array[string]

なし

MVTフォーマットが使用される場合の属性フィールドの名前。

マージ

array[string]

なし

データレコードをグループに追加するために使用されるフィルター条件。

次の例は、configパラメーターを設定する方法を示しています。

{
   "name" : "hello",           
   "parallel": 4,         
   "tileSize": 512,           
   "tileExtend": 8,
   "userExtent": [-180,-90,180,90],
   "splitSize": 5000,
   "maxLevel": 16,  
   "destSRS": 3857,
   "buildRules": [             
     {
       "level": [0,1,2],  
       "value": {
         "filter": "code!=0",
         "attrFields": ["name","color"],    
         "merge":["code=1"]
       }
     }
   ]
}

--Create a pyramid for a spatial geometric data table named roads. 
select ST_BuildPyramid('roads', 'geom', 'id', '');
st_buildpyramid
----------
t