Mybatis读取PostGIS生成矢量瓦片实现大数据量图层的“快显”

java 复制代码
@Select({
            "WITH tile_bbox AS (",
            "  SELECT ST_TileEnvelope(#{z}, #{x}, #{y}) AS bbox_3857",
            ")",
            "SELECT ST_AsMVT(tile, 'layer_name', 4096, 'mvt_geom') AS mvt ",
            "FROM (",
            "  SELECT *,",
            "    ST_AsMVTGeom(",
            "      ST_Transform(geometry, 3857), ",
            "      (SELECT bbox_3857 FROM tile_bbox), ",
            "      4096, 256, true",
            "    ) AS mvt_geom ",
            "  FROM ${dataSourceName}, tile_bbox ",
            "  WHERE geometry && ST_Transform((SELECT bbox_3857 FROM tile_bbox), 4326)",
            ") AS tile"
    })
    VectorTile getMvtTile(
            @Param("z") int z,
            @Param("x") int x,
            @Param("y") int y,
            @Param("dataSourceName") String dataSourceName
    );

SpringBoot连接好PostGIS之后,使用以上的SQL代码查询即可获取,select *表示可以显示所有字段。

java 复制代码
@Data
public class VectorTile {
    byte[] mvt; // Mapbox标注矢量瓦片数据
}

ArcGIS加载矢量瓦片数据对应的style:

javascript 复制代码
  const parcelLayer = new VectorTileLayer({
                style: {
                    "version": 8,
                    "sources": {
                        "osm": {
                            "tiles": ["http://localhost:9999/vectortile/public.疫情/{z}/{x}/{y}.pbf"],
                            "type": "vector"
                        }
                    },
                    "layers": [
  // 发光外层(模糊/扩散效果)
  {
    id: "glow-outline",
    type: "line",
    source: "osm",
    "source-layer": "layer_name",
    paint: {
      "line-color": "#1c1c1c", // 半透明白色或蓝色
      "line-width": 10,                         // 较宽
      "line-blur": 7                           // 模糊边缘(关键!)
    }
  },
  // 主线条
  {
    id: "main-line",
    type: "line",
    source: "osm",
    "source-layer": "layer_name",
    paint: {
      "line-color": "#3388ff",
      "line-width": 1.5
    }
  }
]
                },
                title: 'mvt',
            });

效果:

相关推荐
平行云PVT37 分钟前
数字孪生信创云渲染技术解析:从混合信创到全国产化架构
linux·unity·云原生·ue5·图形渲染·webgl·gpu算力
xdscode1 小时前
Linux云服务器安装openclaw,并对接飞书通道
linux·服务器·飞书·openclaw
Percep_gan2 小时前
Linux中安装Redis,很详细
linux·运维·redis
七七powerful2 小时前
运维养龙虾--AI 驱动的架构图革命:draw.io MCP 让运维画图效率提升 10 倍,使用codebuddy实战
运维·人工智能·draw.io
枕书2 小时前
实战记录:如何使用 Docker 一键部署长亭 PandaWiki 智能知识库
运维·docker·容器
2401_877274242 小时前
从匿名管道到 Master-Slave 进程池:Linux 进程间通信深度实践
linux·服务器·c++
feng_you_ying_li3 小时前
linux之用户的权限详解(4)
linux·运维·服务器
二进制person4 小时前
JavaEE初阶 --网络编程
linux·服务器·网络
Cyber4K4 小时前
【妙招系列】Harbor 镜像私有仓库搭建手册
linux·云原生·容器
Irissgwe5 小时前
进程间通信
linux·服务器·网络·c++·进程间通信