Appearance
发布三维数据
实验功能
需要平台开启三维开关(GEOBRIDGE_FEATURE_3D=true,见功能开关)。
三维数据的发布流程与二维相同:新建数据源并上传 → 准备数据 → 建图层 → 发布为服务 → 设访问级别,见数据接入与发布服务。新建数据源时选「三维数据」分组里的类型;发布向导也能按上传的文件自动识别(含 tileset.json 的压缩包识别为 3D Tiles,.glb、.gltf、.splat、.spz 为三维模型,.las、.laz 为点云,.ply 按文件头区分高斯泼溅与点云)。
下面按数据类型说明格式要求与发布后得到的服务。
栅格地形
把数字高程模型(DEM)发布为高程切片,供 MapLibre 作三维地形与山体阴影。
- 新建「TIFF 影像」数据源,上传单波段高程 GeoTIFF(如 Copernicus DEM、SRTM),建图层。
- 发布时在能力中勾选「栅格地形」(默认不勾选,可与 MapServer、WMS、WMTS 一起发布)。多波段影像不能发布为栅格地形,会提示「栅格地形需要单波段高程数据」。
- 「栅格地形设置」:
- 高程编码: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 渲染器仍直接渲染原始文件。
发布之后
- 在服务详情里预览并保存初始视角、设缩略图,见在控制台预览。
- 在「设置」页签设置访问级别;公开服务可以匿名访问,API Key 级别的服务用 Key 访问,见访问级别。
- 在应用中加载,见在 Cesium 中使用 SDK与三维示例。