Cette fonction étend ST_AsMVTGeom en ajoutant un paramètre res_prec qui filtre les géométries trop petites pour avoir un impact visuel. Elle réduit ainsi la charge de traitement côté frontend et backend ainsi que la consommation réseau, tout en améliorant les performances de visualisation.
Syntaxe
GEOMETRY ST_AsMVTGeomEx(
GEOMETRY geom,
BOX2D bounds,
INTEGER res_prec=1,
INTEGER extent=4096,
INTEGER buffer=256,
BOOLEAN clip_geom=true
);
Paramètres
| Paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
geom |
GEOMETRY | — | Géométrie à convertir. |
bounds |
BOX2D | — | Limites rectangulaires de la tuile, hors zone tampon. |
res_prec |
INTEGER | 1 | Seuil de filtrage. Une géométrie est exclue si son étendue maximale en pixels sur l'axe x ou y est inférieure à cette valeur. |
extent |
INTEGER | 4096 | Taille de la tuile dans le système de coordonnées des tuiles. |
buffer |
INTEGER | 256 | Taille de la zone tampon dans le système de coordonnées des tuiles. |
clip_geom |
BOOLEAN | true | Indique s'il faut découper les géométries aux limites des tuiles. |
Remarques d'utilisation
Cette fonction ne convient pas à la visualisation de données ponctuelles. Privilégiez son usage pour des données vectorielles de tailles variées.
Pour des tuiles de petite taille, une valeur élevée du paramètre
res_precpeut rendre de nombreux vecteurs invisibles.
Exemples
La requête suivante affiche uniquement les vecteurs dont l'étendue minimale atteint deux pixels sur l'axe x ou y de la tuile actuelle.
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.*);