ST_AsMVTGeom
Name
ST_AsMVTGeom — Transforms a geometry into the coordinate space of a MVT tile.
Synopsis
    
     geometry
     
      ST_AsMVTGeom
     
     (
    
    geometry
    
     geom
    
    , box2d
    
     bounds
    
    , integer
    
     extent=4096
    
    , integer
    
     buffer=256
    
    , boolean
    
     clip_geom=true
    
    
     )
    
    ;
   
Description
Transforms a geometry into the coordinate space of a MVT ( Mapbox Vector Tile ) tile, clipping it to the tile bounds if required. The geometry must be in the coordinate system of the target map (using ST_Transform if needed). Commonly this is Web Mercator (SRID:3857).
The function attempts to preserve geometry validity, and corrects it if needed. This may cause the result geometry to collapse to a lower dimension.
The rectangular bounds of the tile in the target map coordinate space must be provided, so the geometry can be transformed, and clipped if required. The bounds can be generated using ST_TileEnvelope .
This function is used to convert geometry into the tile coordinate space required by ST_AsMVT .
   
    geom
   
   is the geometry to transform, in the coordinate system of the target map.
  
   
    bounds
   
   is the rectangular bounds of the tile in map coordinate space, with no buffer.
  
   
    extent
   
   is the tile extent size in tile coordinate space as defined by the
   
    MVT specification
   
   . Defaults to 4096.
  
   
    buffer
   
   is the buffer size in tile coordinate space for geometry clippig. Defaults to 256.
  
   
    clip_geom
   
   is a boolean to control if geometries are clipped or encoded as-is. Defaults to true.
  
Availability: 2.4.0
       
      | 
     |
| 
       From 3.0, Wagyu can be chosen at configure time to clip and validate MVT polygons. This library is faster and produces more correct results than the GEOS default, but it might drop small polygons.  | 
    
Examples
SELECT ST_AsText(ST_AsMVTGeom(
	ST_GeomFromText('POLYGON ((0 0, 10 0, 10 5, 0 -5, 0 0))'),
	ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)),
	4096, 0, false));
                              st_astext
--------------------------------------------------------------------
 MULTIPOLYGON(((5 4096,10 4091,10 4096,5 4096)),((5 4096,0 4101,0 4096,5 4096)))
		
  Canonical example for a Web Mercator tile using a computed tile bounds to query and clip geometry.
SELECT ST_AsMVTGeom(
            ST_Transform( geom, 3857 ),
            ST_TileEnvelope(12, 513, 412), extent => 4096, buffer => 64) AS geom
  FROM data
  WHERE geom && ST_TileEnvelope(12, 513, 412, margin => (64.0 / 4096))