我正在使用此 POSTGIS 查询来生成 MVT 图块并可视化大点图层数据。当放大时,这些图块开始在视觉上出现,但会导致在下一个缩放级别可见的图块数量发生巨大变化。 这导致数据不准确的报告。即使该边界框中有数百万个数据,较低缩放级别的图块也不会返回任何数据。 第一张图片是当我尝试查看我的地图时放大一级 第二张图片是当我将缩放级别向下移动一个缩放级别时
我的查询看起来像这样
ST_AsMVT(tile, 'table', 4096, 'geom')
FROM (
SELECT
ST_AsMVTGeom(
ST_Transform(ST_CurveToLine("geometry"), 3857),
ST_TileEnvelope($1::integer, $2::integer, $3::integer),
4096, 64, true
) AS geom
, "ogc_fid"
FROM
table
WHERE
"geometry" && ST_Transform(ST_TileEnvelope($1::integer, $2::integer, $3::integer, margin => 0.015625), 4326)
) AS tile
将
tile_extent
增加到 4096000
并将 buffer
大小减小到 0
帮助我获得了所需的输出。与此同时,我还删除了瓷砖信封的边距。
所以更新后的代码看起来像
FROM (
SELECT
ST_AsMVTGeom(
ST_Transform(ST_CurveToLine("geometry"), 3857),
ST_TileEnvelope($1::integer, $2::integer, $3::integer),
4096000, 0,false
) AS geom
, "ogc_fid"
FROM
table
WHERE
"geometry" && ST_Transform(ST_TileEnvelope($1::integer, $2::integer, $3::integer), 4326)
) AS tile