このトピックでは、空間ジオメトリデータテーブルのベクトルピラミッドを作成してデータの表示を高速化するST_BuildPyramid関数について説明します。
構文
ブールST_BuildPyramid(cstringテーブル、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がサポートされています。 |
updateExtentSRS | int | 4326 | ST_UpdatePyramid関数の更新スコープに使用されるEPSGコード。 詳細については、「ST_UpdatePyramid」をご参照ください。 |
updateBoxScale | int | 10 | ST_UpdatePyramid関数に影響を与える精度。 詳細については、「ST_UpdatePyramid」をご参照ください。 |
buildRules | array [オブジェクト] | null | ピラミッドの作成に基づいたルール。 複数のルールを指定できます。 各ルールは、levelとvalueの2つの部分で構成されています。 |
レベル | array[int] | null | 指定されたルールが適用されるピラミッドレイヤー。 |
値 | object | null | 指定されたルールの値。 |
フィルター | String | "" | PostgreSQLでデータをフィルタリングするために使用される式。 |
attrFields | array[string] | null | MVTフォーマットが使用される場合の属性フィールドの名前。 |
マージ | array[string] | null | データレコードをグループに追加するために使用されるフィルター条件。 |
次の例は、configパラメーターを設定する方法を示しています。
{
"name" : "hello" 、
"parallel": 4、
"tileSize": 512、
"tileExtend": 8、
"userExtent": [-180,-90,180,90] 、
"splitSize": 5000、
"maxLevel": 16、
"destSRS": 3857、
"buildRules": [
{
"レベル": [0,1、2] 、
"value":{
"filter": "code!=0" 、
"attrFields": ["name" 、"color"] 、
"merge":["code=1"]
}
}
]
}
例
-- roadsという名前の空間幾何学的データテーブルのピラミッドを作成します。
ST_BuildPyramid('roads' 、'geom' 、'id' 、'') を選択します。st_buildpyramid
----------
t