Name

ST_TileEnvelope — 使用 XYZ 切片系统Web Mercator (SRID:3857) 中创建矩形多边形。

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

描述

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

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

可选的margin参数可用于将图块扩展给定的百分比。 例如。margin=0.125将图块扩展 12.5%,相当于当图块范围大小为 4096 时 buffer=512(如 ST_AsMVTGeom中使用的)。这对于创建图块缓冲区以包含位于图块可见区域之外的数据非常有用,但其存在会影响图块渲染。例如,城市名称(一个点)可能靠近图块的边缘,因此其标签应该呈现在两个图块上,即使该点仅位于一个图块的可见区域中。在查询中使用扩展图块将在两个图块中包含城市点。 使用负值来缩小图块。 禁止使用小于 -0.5 的值,因为这会完全消除图块。与ST_AsMVTGeom 一起使用时,请勿指定边距。 请参阅 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