名前

ST_TileEnvelope — Webメルカトル (SRID:3857)上で XYZタイルを使った矩形ポリゴンを生成します。

概要

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

説明

Webメルカトル (SRID:3857)上で XYZタイルを使った矩形ポリゴンを生成します。デフォルトでは、境界は、標準のWebメルカトルの範囲 (-20037508.342789, 20037508.342789)を使ったEPSG:3857です。任意指定のboundsパラメータを変更することで、SRIDと、タイル系が内接する「ズームレベル 0」の矩形の範囲を持つジオメトリを提供することができ、あらゆるタイル体系に使うことができます。

任意パラメータmarginは、与えられた率でタイルを拡大するのに使います。たとえばmargin=0.125ではタイルは12.5%拡大します。ST_AsMVTGeomで言うところのextent=4096の時のbuffer=512と同じです。これは、タイルの表示範囲の外側のデータを取り込むために使われるタイルバッファの生成に便利ですが、その範囲は現在のタイルの描画に影響を与えます。たとえば、市名 (ポイント)はタイルのエッジの近くにある場合がありますが、テキストは、ポイントが単一のタイルの領域上にあってでも、二つのタイルの上で描画する必要があります。拡大したタイルを検索に使うと、両方のタイルで市のポイントを含むことになります。代わりにタイルを小さくするには負の値を使います。-0.5より小さい値だと、タイルを完全に削除することになるので、禁止されています。marginをST_AsMVTGeom()と共には使わないでください。例はST_AsMVTを参照して下さい。

Enhanced: 3.1.0 marginパラメータが追加されました。

Availability: 3.0.0

例: タイルエンベロープの構築

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

関連情報

ST_MakeEnvelope