ST_AsMVTGeom 関数を拡張し、表示に影響を与えないほど小さなジオメトリをフィルター処理するための res_prec パラメーターを追加します。これにより、フロントエンドおよびバックエンドの処理負荷、ネットワークオーバーヘッドが低減され、可視化パフォーマンスが向上します。
構文
GEOMETRY ST_AsMVTGeomEx(
GEOMETRY geom,
BOX2D bounds,
INTEGER res_prec=1,
INTEGER extent=4096,
INTEGER buffer=256,
BOOLEAN clip_geom=true
);パラメーター
| パラメーター | 型 | デフォルト値 | 説明 |
|---|---|---|---|
geom | GEOMETRY | — | 変換対象のジオメトリです。 |
bounds | BOX2D | — | バッファーを除いたタイルの矩形境界です。 |
res_prec | INTEGER | 1 | フィルタリングのしきい値です。X 軸または Y 軸方向におけるジオメトリの最大ピクセルスパンがこの値より小さい場合、該当ジオメトリはフィルターで除外されます。 |
extent | INTEGER | 4096 | タイル座標系におけるタイルサイズです。 |
buffer | INTEGER | 256 | タイル座標系におけるバッファーのサイズです。 |
clip_geom | BOOLEAN | true | タイル境界でジオメトリをクリップするかどうかを指定します。 |
注意事項
ポイントデータの可視化には適していません。サイズが多様なベクトルデータに対してご使用ください。
小規模なタイルでは、
res_precを大きな値に設定すると、多くのベクターが非表示になる可能性があります。
例
以下のクエリは、現在のタイルの X 軸または Y 軸方向において最小スパンが 2 ピクセル以上のベクターのみを可視化します。
WITH mvtgeom AS(SELECT ST_AsMVTGeomEx(geom, ST_Transform(ST_TileEnvelope(0,0,0),4326),2)AS geom
FROM geom_table
WHERE geom && ST_Transform(ST_TileEnvelope(0,0,0),4326))
SELECT ST_AsMVT(mvtgeom.*);