
本仓库包含https://github.com/geo-data/cesium-terrain-builder%E5%BA%94%E7%94%A8%E7%9A%84%60Dockerfile%60%EF%BC%8C%E6%94%AF%E6%8C%81%E6%96%B0%E7%9A%84Cesium%E5%9C%B0%E5%BD%A2%E6%A0%BC%E5%BC%8F*quantized-mesh*%E3%80%82%E8%AF%A5%E9%95%9C%E5%83%8F%E5%9F%BA%E4%BA%8E%E4%B8%80%E4%B8%AAhttps://github.com/ahuarte47/cesium-terrain-builder/tree/master-quantized-mesh%E6%9E%84%E5%BB%BA%EF%BC%8C%E6%8F%90%E4%BE%9B%E9%87%8F%E5%8C%96%E7%BD%91%E6%A0%BC%E6%94%AF%E6%8C%81%EF%BC%8C%E5%A6%82%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E6%89%80%E8%BF%B0%E3%80%82%E5%85%B3%E4%BA%8E%E6%AD%A4%E5%88%86%E6%94%AF%E7%9A%84%E6%9C%80%E6%96%B0%E5%BC%80%E5%8F%91%E4%BF%A1%E6%81%AF%E5%8F%AF%E5%9C%A8%E8%AF%A5https://github.com/geo-data/cesium-terrain-builder/pull/64%E4%B8%AD%E6%9F%A5%E7%9C%8B%E3%80%82%E6%84%9F%E8%B0%A2https://github.com/homme%E5%92%8Chttps://github.com/ahuarte47%E5%9C%A8Cesium Terrain Builder和量化网格支持方面的出色工作。
注意: 镜像会在每次推送到https://github.com/ahuarte47/cesium-terrain-builder/tree/master-quantized-mesh%E6%97%B6%E9%87%8D%E6%96%B0%E6%9E%84%E5%BB%BA%E3%80%82%E8%AF%B7%E8%AE%BF%E9%97%AEhttps://hub.docker.com/r/tumgis/ctb-quantized-mesh%E6%9F%A5%E7%9C%8B%E6%9C%80%E6%96%B0%E6%9E%84%E5%BB%BA%E7%89%88%E6%9C%AC%E3%80%82
如遇问题或希望贡献代码,请创建https://github.com/tum-gis/cesium-terrain-builder-docker/issues%E6%88%96https://github.com/tum-gis/cesium-terrain-builder-docker/pulls%E3%80%82
按照以下步骤使用此Docker镜像为Cesium创建量化网格瓦片。
alpine镜像更新至Alpine v3.12和GDAL v3.14Docker镜像可在DockerHub的https://hub.docker.com/r/tumgis/%E4%BB%93%E5%BA%93%E8%8E%B7%E5%8F%96%E3%80%82%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F%E5%91%BD%E4%BB%A4%EF%BC%9A%60docker pull tumgis/ctb-quantized-mesh:
| 标签 | 构建状态 | 描述 |
|---|---|---|
latest | 在使用CTB前将数据转换为WGS84(EPSG:4326)坐标参考系,以避免地形数据集的垂直或水平偏移。如有可能,使用NTv2转换方法。例如,FME可通过EsriReprojector转换器或ESRI ArcGIS支持此转换。
将数据放在Docker可挂载的文件夹中。Windows系统中,需先授予数据所在驱动器的访问权限才能挂载文件夹。通过Docker托盘图标 -> 设置 -> 共享驱动器与Docker共享驱动器。有关Windows上挂载主机目录的详细指南,请参阅此博客文章。
下文假设Windows Docker主机的地形数据存储在d:\docker\terrain且d:\已共享;Linux Docker主机的地形数据存储在/docker/terrain。
当数据转换完成并复制到Docker可访问位置后,即可使用CTB创建Cesium地形。
启动CTB前,建议使用docker pull tumgis/ctb-quantized-mesh拉取最新镜像版本。然后启动CTB容器并将地形数据文件夹挂载到容器内的/data目录。不同操作系统和shell的示例如下:
Linux - bash
bashdocker run -it --name ctb \ -v "/docker/terrain":"/data" \ tumgis/ctb-quantized-mesh
Windows - cmd
shdocker run -it --name ctb ^ -v "d:/docker/terrain":"/data" ^ tumgis/ctb-quantized-mesh
Windows - git-bash
shwinpty docker run --rm -it --name ctb \ -v "d:\\docker\\terrain":"/data" \ tumgis/ctb-quantized-mesh
若数据集为单个文件,直接进入下一步。若数据集包含多个瓦片(多个文件),需使用gdalbuildvrt创建GDAL虚拟数据集。
shgdalbuildvrt <输出vrt文件.vrt> <文件>
例如,若有多个*.tif文件,运行:
shgdalbuildvrt tiles.vrt *.tif
创建GDAL虚拟数据集的更多选项(如使用文件列表)可参考gdalbuildvrt文档。
首先,创建地形输出文件夹,例如mkdir -p terrain。然后运行CTB创建地形文件:
shctb-tile -f Mesh -C -N -o terrain <输入文件.tif或输入.vrt>
例如,若已创建tile.vrt:
shctb-tile -f Mesh -C -N -o terrain tile.vrt
ctb-tile支持多种选项。运行ctb-tile --help查看所有选项。处理大型数据集时,可考虑设置-m选项和GDAL_CHACHEMAX环境变量,详见https://github.com/geo-data/cesium-terrain-builder#ctb-tile%E3%80%82
最后,需创建图层描述文件。只需在创建地形文件的命令后添加-l参数重新运行。例如:
shctb-tile -f Mesh -C -N -o terrain tiles.vrt # 创建地形文件 ctb-tile -f Mesh -C -N -l -o terrain tiles.vrt # 创建图层描述文件
最终,地形数据文件夹结构应类似:
text$ tree -v -C -L 1 terrain/ terrain/ |-- 0 |-- 1 |-- 2 |-- 3 |-- 4 |-- 5 |-- 6 |-- 7 |-- 8 |-- 9 |-- 10 |-- 11 |-- 12 |-- 13 |-- 14 |-- 15 `-- layer.json
量化网格地形现已准备就绪。
仔细阅读ctb-tile的https://github.com/geo-data/cesium-terrain-builder#recommendations%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%E5%A4%84%E7%90%86%E5%A4%A7%E5%9E%8B%E6%95%B0%E6%8D%AE%E9%9B%86%E6%97%B6%E3%80%82
大范围数据集可能在低缩放级别导致溢出错误:
text0...10...20...30...40...50...60...70...80...90...ERROR 1: Integer overflow : nSrcXSize=41494, nSrcYSize=16585 ERROR 1: IReadBlock failed at X offset 0, Y offset 0: Integer overflow : nSrcXSize=41494, nSrcYSize=16585 ...
如https://github.com/tum-gis/cesium-terrain-builder-docker/issues/3#issuecomment-772680266%E6%89%80%E8%BF%B0%EF%BC%8C%E8%BF%99%E6%98%AF%E7%94%B1%E4%BA%8EGDAL%E5%B0%9D%E8%AF%95%E4%BB%8E%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%88%9B%E5%BB%BA%E6%A6%82%E8%A7%88%E5%AF%BC%E8%87%B4%E7%9A%84%E3%80%82%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E6%98%AF%E5%88%9B%E5%BB%BA%E4%BD%8E%E5%88%86%E8%BE%A8%E7%8E%87%E7%9A%84%E7%AE%80%E5%8C%96%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E7%89%88%E6%9C%AC%EF%BC%8C%E7%94%A8%E4%BA%8E%E4%BD%8E%E7%BA%A7%E5%88%AB%E7%BD%91%E6%A0%BC%E7%93%A6%E7%89%87%E5%88%9B%E5%BB%BA%E3%80%82%E5%8F%AF%E4%BD%BF%E7%94%A8gdal_translate%E5%AE%9E%E7%8E%B0%E3%80%82%E7%84%B6%E5%90%8E%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%60ctb-tile%60%E4%BB%8E0%E7%BA%A7%E5%BC%80%E5%A7%8B%E5%88%9B%E5%BB%BA%E4%B8%8D%E5%B4%A9%E6%BA%83%E7%9A%84%E5%88%86%E8%BE%A8%E7%8E%87%E7%9A%84%E7%BD%91%E6%A0%BC%E7%93%A6%E7%89%87%EF%BC%8C%E4%B8%BA%E6%AF%8F%E4%B8%AA%E7%BA%A7%E5%88%AB%E4%BD%BF%E7%94%A8%E5%B0%BD%E5%8F%AF%E8%83%BD%E9%AB%98%E4%B8%94%E4%B8%8D%E5%B4%A9%E6%BA%83%E7%9A%84%E5%88%86%E8%BE%A8%E7%8E%87%E3%80%82



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务