ST_TileEnvelope — Skapar en rektangulär polygon i Web Mercator (SRID:3857) med hjälp av XYZ-plattsystemet.
geometry ST_TileEnvelope(integer tileZoom, integer tileX, integer tileY, geometry bounds=SRID=3857;LINESTRING(-20037508.342789 -20037508.342789,20037508.342789 20037508.342789), float margin=0.0);
Skapar en rektangulär polygon som motsvarar utsträckningen av en platta i XYZ-plattsystemet. Plattan specificeras av zoomnivån Z och XY-indexet för plattan i rutnätet på den nivån. Kan användas för att definiera de plattgränser som krävs av ST_AsMVTGeom för att konvertera geometri till MVT-koordinatrymden för plattan.
Som standard är plattans kuvert i koordinatsystemet Web Mercator (SRID:3857) med standardintervallet för systemet Web Mercator (-20037508.342789, 20037508.342789). Detta är det vanligaste koordinatsystemet som används för MVT-plattor. Den valfria parametern bounds kan användas för att generera plattor i vilket koordinatsystem som helst. Det är en geometri som har SRID och utsträckning för "Zoom Level zero"-kvadraten inom vilken XYZ-plattsystemet är inskrivet.
Den valfria parametern margin kan användas för att utöka en ruta med angiven procentandel. Till exempel utökar margin=0.125 rutan med 12,5 %, vilket motsvarar buffer=512 när rutans utsträckning är 4096, som i ST_AsMVTGeom. Detta är användbart för att skapa en rutbuffert som inkluderar data utanför rutans synliga område men som påverkar renderingen. Ett stadsnamn (en punkt) kan exempelvis ligga nära kanten på en ruta, så att etiketten bör återges på två rutor trots att punkten bara ligger i det synliga området i den ena. En fråga med utökade rutor inkluderar då stadspunkten i båda rutorna. Använd i stället ett negativt värde för att krympa rutan. Värden mindre än -0.5 är förbjudna eftersom de helt skulle eliminera rutan. Ange inte en marginal med ST_AsMVTGeom. Se exemplet för ST_AsMVT.
Förbättrad: 3.1.0 Lagt till marginalparameter.
Tillgänglighet: 3.0.0
Visa rutan (2, 1, 1) inom rotrutan (0, 0, 0).
SELECT ST_TileEnvelope(0, 0, 0) AS input_z0_x0_y0, ST_TileEnvelope(2, 1, 1) AS z2_x1_y1;
input_z0_x0_y0 | z2_x1_y1 ----------------+----------- POLYGON((-20037508.342789244 -20037508.342789244,-20037508.342789244 20037508.342789244,20037508.342789244 20037508.342789244,20037508.342789244 -20037508.342789244,-20037508.342789244 -20037508.342789244)) | POLYGON((-10018754.171394622 0,-10018754.171394622 10018754.171394622,0 10018754.171394622,0 0,-10018754.171394622 0))
SELECT ST_TileEnvelope(3, 1, 1, ST_MakeEnvelope(-180, -90, 180, 90, 4326));
POLYGON((-135 45,-135 67.5,-90 67.5,-90 45,-135 45))