Skip to content

发布三维数据 ​

实验功能

需要平台开启三维开关(GEOBRIDGE_FEATURE_3D=true,见功能开关)。

三维数据的发布流程与二维相同:新建数据源并上传 → 准备数据 → 建图层 → 发布为服务 → 设访问级别,见数据接入与发布服务。新建数据源时选「三维数据」分组里的类型;发布向导也能按上传的文件自动识别(含 tileset.json 的压缩包识别为 3D Tiles,.glb、.gltf、.splat、.spz 为三维模型,.las、.laz 为点云,.ply 按文件头区分高斯泼溅与点云)。

下面按数据类型说明格式要求与发布后得到的服务。

栅格地形 ​

把数字高程模型(DEM)发布为高程切片,供 MapLibre 作三维地形与山体阴影。

  1. 新建「TIFF 影像」数据源,上传单波段高程 GeoTIFF(如 Copernicus DEM、SRTM),建图层。
  2. 发布时在能力中勾选「栅格地形」(默认不勾选,可与 MapServer、WMS、WMTS 一起发布)。多波段影像不能发布为栅格地形,会提示「栅格地形需要单波段高程数据」。
  3. 「栅格地形设置」:
    • 高程编码:Terrarium(默认)或 Mapbox,两者 MapLibre 都支持;
    • 地形最大级别:0–22,留空时按数据分辨率推算(最高 15 级)。超过最大级别时 MapLibre 会放大使用最后一级的切片。

发布后的地址(切片为 256 像素 PNG,列号在前、行号在后,与 MapServer 切片的 {z}/{y}/{x} 不同):

用途地址
TileJSON…/{服务}/RasterTerrainServer/tile/tiles.json
高程切片…/{服务}/RasterTerrainServer/tile/{z}/{x}/{y}.png

用 SDK 加到 MapLibre 地图上只需一行 client.maplibre.setRasterTerrain(map, '服务路径', { exaggeration: 1.5, hillshade: true }),见 API 参考。

网格地形 ​

量化网格(quantized-mesh-1.0)地形,作为 Cesium 的场景地形。

  • 数据:一个地形目录,根下有 layer.json,瓦片为 {z}/{x}/{y}.terrain(gzip 压缩与否都可以)。平台原样提供瓦片,顶点法线、水面掩膜等扩展取决于数据本身是否包含并在 layer.json 中声明。
  • 新建「MeshTerrain」数据源:上传地形目录打成的 .zip,或选择整个文件夹上传;本地部署也可以引用服务器上的目录。建图层后发布为「Mesh 地形服务」。
  • 地址:…/{服务}/MeshTerrainServer/tile/layer.json。网格地形只能用 Cesium 预览与使用。

三维模型与放置 ​

  • 新建「三维模型」数据源,上传 .glb、.gltf,或多个文件打成的 .zip。引用外部 .bin 与贴图的 .gltf 必须与这些文件一起打成 zip。.obj、.fbx、.dae 需要先在平台之外转换为 glTF。
  • 建图层并发布为三维模型服务。一个服务里的全部模型文件都会列在模型清单 …/{服务}/3DModelServer?f=json 中(文件地址、种类、大小与默认位置)。
  • 设置默认位置:在服务详情的「模型」页签选中一个模型,在预览地图上点选位置(只回填经纬度),或在表单里填写经度、纬度、高度、朝向、俯仰、翻滚、缩放,点「设置默认位置」。经度 −180 到 180,纬度 −85.0511 到 85.0511,缩放大于 0 且不超过 10000。
  • 没有默认位置的模型不会出现在预览与 SDK 加载的场景里(SDK 在结果的 skipped 中说明原因)。

3D Tiles ​

  • 新建「3DTiles」数据源,上传含 tileset.json 的 .zip,或选择整个文件夹。一个数据源里可以有多个 tileset.json,各自列为一项;被其他 tileset 引用的子 tileset 不单独列出。
  • 倾斜摄影请先转换为 3D Tiles 再上传(新建「倾斜摄影」数据源时只有 .osgb 会提示需先转换)。
  • 建图层时范围由 tileset 的包围体换算为经纬度;发布为 3D Tiles 服务后,入口为 …/{服务}/Cesium3DTileServer/tile/tileset.json。

点云 LAS / LAZ ​

点云发布为 3D Tiles 服务后,平台自动把源文件转换为 3D Tiles 点云,由该服务提供。

  • 数据要求:LAS 1.0–1.4 与 LAZ(含 COPC),点格式 0–3、6–8;含波形的点格式(4、5、9、10)不支持;PLY 点云请先转换为 LAS / LAZ。一个图层对应一个文件,单个文件至多 4 亿个点。
  • 坐标系:优先使用文件中声明的坐标系(OGC WKT 或 GeoTIFF 键);文件没有声明时,建图层时把「数据坐标系」填为点云实际的 EPSG 编码。坐标换算不做大地基准转换(如 NAD83 按 WGS84 处理,水平约 1 米偏差),高程按椭球高处理,与地形叠加时可能显得偏低。
  • 转换:发布到 3D Tiles 服务成功后自动开始,进度与结果显示在服务详情概览的「3D Tiles 入口」卡片中,可以「生成 3D Tiles / 重新生成」。源文件被替换后需要重新生成。千万级点的转换通常在一分钟内完成,所需内存约为每点 30 字节。
  • 属性:带颜色的点保留 RGB;逐点属性保留强度(Intensity)、分类(Classification)、回波号与回波数。预览与 SDK 可据此按 RGB、分类、强度、高程着色,见在控制台预览。

高斯泼溅转换 ​

三维模型数据源里的高斯泼溅文件发布后,平台把它转换为高斯泼溅 3D Tiles(glTF 的 KHR_gaussian_splatting 扩展加 SPZ 压缩),由 CesiumJS 1.146 及以上原生渲染。

  • 支持的格式:标准 3DGS 的 .ply(二进制或文本)、.splat、.spz(v1–v3)。SuperSplat 导出的压缩 PLY 不支持。
  • 转换:发布到三维模型服务成功后自动开始。「模型」页签的「3D Tiles」一列显示「未生成」「转换中」「已生成」「转换失败」,选中文件后可「生成 3D Tiles / 重新生成」;失败时显示原因。
  • 位置:泼溅同样要设置默认位置,才能在 Cesium 中按位置加载;修改默认位置不需要重新转换。
  • 原始文件保留;控制台的 MapLibre 渲染器仍直接渲染原始文件。

发布之后 ​