Name

ST_TileEnvelope — Skapar en rektangulär polygon i Web Mercator (SRID:3857) med hjälp av XYZ-plattsystemet.

Synopsis

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);

Beskrivning

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 marginalparametern kan användas för att expandera en platta med den angivna procentsatsen. T.ex. margin=0,125 expanderar plattan med 12,5%, vilket motsvarar buffer=512 när plattans storlek är 4096, som används i ST_AsMVTGeom. Detta är användbart för att skapa en plattbuffert för att inkludera data som ligger utanför plattans synliga område, men vars existens påverkar plattrenderingen. Ett stadsnamn (en punkt) kan t.ex. ligga nära kanten på en platta, så dess etikett bör återges på två plattor, även om punkten ligger i det synliga området på bara en platta. Om du använder expanderade plattor i en fråga kommer stadspunkten att inkluderas i båda plattorna. Använd ett negativt värde för att krympa plattan istället. Värden mindre än -0,5 är förbjudna eftersom det skulle eliminera plattan helt. Ange inte en marginal när du använder ST_AsMVTGeom. Se exemplet för ST_AsMVT.

Förbättrad: 3.1.0 Lagt till marginalparameter.

Tillgänglighet: 3.0.0

Exempel: Bygga ett kuvert av plattor

SELECT ST_AsText( ST_TileEnvelope(2, 1, 1) );

 st_astext
------------------------------
 POLYGON((-10018754.1713945 0,-10018754.1713945 10018754.1713945,0 10018754.1713945,0 0,-10018754.1713945 0))

SELECT ST_AsText( ST_TileEnvelope(3, 1, 1, ST_MakeEnvelope(-180, -90, 180, 90, 4326) ) );

                      st_astext
------------------------------------------------------
 POLYGON((-135 45,-135 67.5,-90 67.5,-90 45,-135 45))

Se även

ST_MakeEnvelope