名称

ST_TileEnvelope — 使用 XYZ 瓦片系统Web 墨卡托 (SRID:3857) 中创建一个矩形多边形。

概要

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

描述

创建一个矩形多边形,表示 XYZ 瓦片系统 中瓦片的范围。瓦片由缩放级别 Z 和该级别网格中瓦片的 XY 索引指定。可用于定义 ST_AsMVTGeom 将几何转换为 MVT 瓦片坐标空间所需的瓦片边界。

默认情况下,瓦片范围使用 Web 墨卡托系统 (-20037508.342789, 20037508.342789) 的标准范围,位于 Web 墨卡托 坐标系 (SRID:3857) 中。这是 MVT 瓦片最常用的坐标系。可选的 bounds 参数可用于在任何坐标系中生成瓦片。它是一个几何图形,具有 "缩放级别零" 正方形的 SRID 和范围,XYZ 瓦片系统位于该正方形内。

可选的 `margin` 参数可以用来按给定百分比扩展瓦片。例如,`margin=0.125` 将瓦片扩展 12.5%,这等同于当瓦片范围大小为 4096 时,`buffer=512`,如 ST_AsMVTGeom 中所用。这对于创建瓦片缓冲区以包含位于瓦片可见区域之外但其存在影响瓦片渲染的数据很有用。例如,一个城市名称(一个点)可能靠近瓦片的边缘,因此它的标签应该渲染在两个瓦片上,即使该点只位于一个瓦片的可见区域内。在查询中使用扩展的瓦片将包含两个瓦片中的城市点。使用负值来缩小瓦片。小于 -0.5 的值是被禁止的,因为这将完全消除瓦片。在使用 ST_AsMVTGeom 时不要指定 margin。请参见 ST_AsMVT 的示例。

增强:3.1.0 添加了 margin 参数。

可用性: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