【发布时间】:2021-05-22 19:29:38
【问题描述】:
我们的平台目前使用 pbf 瓦片(在 s3 上)在前端的 Mapbox 上渲染矢量图层。 pbf 瓦片中有单独的图层,我们使用 Mapbox 图层的 source-layer 属性将它们设置为单独的图层。我们现在正在转向 PostGIS,我们希望避免使用 s3 并直接在前端将矢量图块渲染为 mvt。
我正在尝试从 mvt 中获取单独的图层,但我看到的唯一图层是“默认”图层。我使用这个vizualizer tool 确定了这一点。我目前正在使用此查询获取 mvt -
WITH mvtgeom AS (
SELECT ST_AsMVTGeom(ST_Transform(ST_Force2D(geom), 3857),
ST_TileEnvelope(${z}, ${x}, ${y}))
AS geom,
layer,
gid
FROM site-name
WHERE ST_Intersects(geom, ST_Transform(ST_TileEnvelope(${z}, ${x}, ${y}), 4326)))
SELECT ST_AsMVT(mvtgeom.*) AS mvt FROM mvtgeom;
This 问题与我的问题非常接近,但答案建议使用 UNION,考虑到我们必须渲染数百层,我想尽可能避免使用它。 我也试过this。在这种情况下,当我将 layer-ids 的值放入 IN 时,我看到这些图层集被渲染为一个图层。
(为了了解矢量切片是如何生成的,我是否需要探索一些东西,以便我知道单独的图层是如何生成的?我是 PostGIS 新手,我不确定我是否做错了什么或遗漏的东西。任何建议表示赞赏)
【问题讨论】:
标签: postgresql mapbox postgis mapbox-gl-js mapbox-gl