经纬志
首页 / OpenLayers / 使用示例

拖放数据的瓦片预览

拖入数据后不仅上图,还按 z9 计算它覆盖的瓦片矩形,把瓦片编号标在图上,模拟矢量瓦片预览。

OpenLayers 10.3.1 · 对应官方 drag-and-drop-custom-mvt.html · 更新 2026-10-27
源码与运行效果
运行效果

说明

矢量瓦片预览的核心是「数据范围落在哪些瓦片里」。示例用 ol.tilegrid.createXYZ() 建标准网格,把数据范围的左上角与右下角分别 换算成瓦片行列号,再逐块用 getTileCoordExtent() 取范围画矩形。

每个矩形要素带 label 属性(z/x/y),样式函数把它写成文字, 于是能直接看到数据跨越了几块瓦片;瓦片数超过 40 时停止绘制,避免画布过重。

操作结果
点击「载入内置数据」多边形上图,并在 z9 网格中框出覆盖瓦片
拖入自己的 GeoJSON数据替换显示,瓦片编号重新计算
缩放地图瓦片矩形按地图坐标固定,不随缩放变形

真实 MVT 预览还要在客户端解析 pbf,并处理投影与 extent 比例,这里只演示范围计算与标注。