空間ジオメトリデータテーブルのベクター ピラミッドを作成し、空間データのレンダリングを高速化します。
構文
boolean ST_BuildPyramid(cstring table, cstring geom, cstring fid, cstring config)パラメーター
| パラメーター | 説明 |
|---|---|
table | 空間ジオメトリデータテーブルの名前。 |
geom | ジオメトリカラムの名前。 |
fid | 要素 ID フィールドの名前。 |
config | ピラミッド設定。JSON 文字列で指定します。 |
config フィールド
| フィールド | タイプ | デフォルト | 説明 |
|---|---|---|---|
name | 文字列 | テーブル名と同じ | ピラミッドの名前。 |
parallel | 整数 | 0 | ピラミッドを構築する際に並列実行するタスクの最大数。 max_prepared_transactions パラメーターを設定する必要があります。上限を解除するには 0 を設定します。 |
tileSize | 整数 | 1024 | ピラミッドのタイルサイズ。有効な値:1~4095 の整数。 |
tileExtend | 整数 | 8 | ピラミッドのタイル拡張サイズ。有効な値:1 以上の整数。 |
userExtent | 配列 [double] | null | ピラミッドの地理的範囲。 minx、miny、maxx、maxy の 4 つの値を含む JSON 配列として定義します。null 値を指定するには [] を設定します。 |
splitSize | 整数 | 10000 | インデックスノード分割あたりの要素の最大数。値を大きくすると、より疎なピラミッドが生成されます。 |
maxLevel | 整数 | 16 | ピラミッドレベルの最大数。有効な値:0~20。 |
sourceSRS | 整数 | -1 | ソースデータの空間参照系 (SRS)。デフォルトでは、この関数はテーブルメタデータから空間参照系識別子 (SRID) を読み取ります。 |
destSRS | 整数 | 3857 | タイル座標系の EPSG コード。有効な値: 3857 (EPSG 3857) および 4326 (EPSG 4326)。 |
buildRules | 配列 [オブジェクト] | null | ピラミッド構築ルール。複数のルールをサポートします。 |
buildRules フィールド
| フィールド | タイプ | 説明 |
|---|---|---|
level | 配列 [整数] | ルールを適用するピラミッドレベル。 |
value | オブジェクト | ルールの構成。次のサブフィールドを含みます: filter、attrFields、merge。 |
value.filter | 文字列 | データに適用する PostgreSQL のフィルター式。 |
value.attrFields | 配列 [文字列] | Mapbox Vector Tile (MVT) 形式を使用する際に含める属性フィールド。 |
value.merge | 配列 [文字列] | データレコードをグループ化するためのフィルター条件。 |
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"]
}
}
]
}例
空間ジオメトリデータテーブル roads のピラミッドを構築します:
SELECT ST_BuildPyramid('roads', 'geom', 'id', '');想定される出力:
st_buildpyramid
---------------
t