Web 地图瓦片与三维
为 Web 地图和三维场景准备数据:把矢量切成 MVT 矢量瓦片,把影像切成栅格瓦片,把 DEM 做成 Terrain-RGB 或 Cesium 地形瓦片,配套生成字体和图标资源,并对 LOD1.3 建筑模型做质检。
你会得到什么
| 成果 | 用在哪里 | 插件 |
|---|---|---|
MBTiles 或 {z}/{x}/{y}.pbf 矢量瓦片 | MapLibre、Mapbox GL、OpenLayers 等 | Tippecanoe |
| PNG / JPEG 栅格瓦片目录(XYZ 或 TMS)或 MBTiles | 各类 Web 地图的影像图层 | ZealMap Raster Tiler |
| Terrain-RGB 高程瓦片 | MapLibre / Mapbox 三维地形 | ZealMap Raster Tiler |
Cesium heightmap 地形瓦片(.terrain) | Cesium 三维地球 | cesium-terrain-builder |
| glyph PBF 字体、sprite 精灵图 | MapLibre / Mapbox GL 样式的 glyphs 和 sprite | ZealMap VT Assets |
| LOD1.3 模型质检报告 | 三维建筑模型验收 | ZealMap LOD1.3 质检 |
这些都是扩展插件,用到哪个在插件市场装哪个,见切片与三维模型和制图工具:ZealMap VT Assets。
矢量瓦片
把
buildings.shp和roads.shp切进同一套矢量瓦片,分成 buildings、roads 两个图层,4–14 级,只保留 name 和 height 字段,输出 MBTiles。
智能体会先用 GDAL 把 Shapefile 转成 WGS84 的 GeoJSON(Tippecanoe 不直接读 Shapefile、GeoPackage,且要求经纬度坐标),再切片;数据量大时先做小范围、低级别试产,确认效果和体积后再全量。已有的同名输出默认不覆盖。
栅格瓦片与地形瓦片
把
ortho.tif切成 10–18 级的 PNG 瓦片,XYZ 目录结构。
把
dem.tif编码成 Terrain-RGB 高程瓦片,输出 MBTiles,再抽样解码几个瓦片核对高程。
用
dem.tif生成 Cesium 地形瓦片,先做 0 级试产,没问题再全量。
切片前会检查栅格的坐标系、范围、像元大小和 NODATA。缺少坐标系时不会猜测,需要你确认。生成后统计瓦片数量和层级,Terrain-RGB 可以抽样解码像素高程,.terrain 可以抽检采样数和高程范围。
字体与图标
把思源黑体做成 MapLibre 的 glyph PBF;把 icons 文件夹里的 SVG 打包成精灵图,同时生成 @2x。
字体名以检查结果为准,不按文件名猜。多个字体可以组成回退字体栈,例如西文字体在前、中文字体补缺字。
三维建筑模型质检
检查
D:\models下的 LOD1.3 OBJ 模型,用footprint.shp轮廓检查套合,出质检报告。
检查结构与规模、拓扑、材质与纹理、坐标系与贴地,按规则列出错误和警告;完整报告写成 JSON 文件时需要审批。默认阈值可以按你的项目标准调整,例如“每个模型面数上限改成 8000”。
做一个 WebGIS 页面
WebGIS 开发专家可以用这些瓦片和服务做一个网页地图:图层面板、属性弹窗、图例等,并在本地启动、构建验证。
用刚才生成的矢量瓦片(目录式 pbf)做一个 MapLibre 网页地图,左侧图层面板可以开关 buildings 和 roads,点击建筑弹出名称和高度。
注意
- 磁盘空间:瓦片数量随层级指数增长,高层级的栅格瓦片可能有几十万到上百万个文件,先估算再全量;
- NODATA:Cesium 地形和 Terrain-RGB 都不填补 NODATA,DEM 有空洞时先用其他栅格工具填补;
- 不提供服务:这些插件只生成文件,不启动地图服务;发布成在线服务需要放到你的服务器或 CDN 上,矢量数据也可以入库后发布到 GeoServer;
- Cesium 格式:只支持 heightmap-1.0,不支持 quantized-mesh;
- 授权:字体和图标需要你确认允许转换、嵌入和再分发。