首页 Cesium 1.128 离线部署与本地地图影像加载方案

Cesium 1.128 离线部署与本地地图影像加载方案

更新于 2026-10-03

Cesium 1.128 离线使用场景说明

在部分内网部署环境中,Cesium 官方提供的 CDN 服务和在线地图资源无法访问,此时需要将 Cesium 库完整下载到本地进行离线引用,同时自主搭建地图影像服务来替代默认的在线底图。本文将介绍 Cesium 1.128 版本的本地引入步骤,以及如何通过静态资源服务器部署地图影像数据供 Cesium 调用。正文中的下载资源由热心开发者提供,在此表示感谢。

Cesium 1.128 安装包下载方式

Cesium 1.128 于 2025 年 4 月发布,官方提供 CDN 方式引入:

<script src="https://cesium.com/downloads/cesiumjs/releases/1.128/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.128/Build/Cesium/Widgets/widgets.css" rel="stylesheet">

如果直接将上述两个文件下载后本地引用,会报错:

Cesium.js:1 Uncaught SyntaxError: Invalid regular expression: /[א-ת؀-ۿݐ-ݿࢠ-ࣿ]/: Range out of order in character class (at Cesium.js:1:1711082)

原因在于 Cesium.js 还引用了其他多个 JS 文件,因此需要下载完整的压缩包。为了方便大家下载,我已经给大家整理好了资源。资源链接放在下面,自取就好,如果链接失效,可以在评论区留言,我看到了会及时更新。 地图影像数据与地形数据压缩包:夸克网盘下载

Cesium 1.128 本地引入操作步骤

  1. 下载 Cesium-1.128.zip 压缩包并解压到本地目录。
  2. 打开解压后的文件夹,找到 Build 目录(packages 目录为 npm 包版本,供框架项目使用)。
  3. 进入 Build 文件夹,其中 Cesium 为压缩版代码,CesiumUnminifed 为未压缩版代码,两者均包含完整的 Cesium 功能。
  4. 在 HTML 文件中引入 CesiumUnminified 目录下的 Cesium.js 与 widgets.css,引入路径保持本地相对路径即可,与官方 CDN 引入方式一致,只需更改基础地址。
  5. 打开 Viewer 配置项,将 Cesium.Ion.defaultAccessToken 设置为 undefined,避免内网环境下产生无效请求报错。
  6. 将 baseLayerPicker 等官方组件设置为 false,避免加载不必要的在线服务。
  7. 设置 imageryProvider: false,该配置项虽在新版中已移除,但可阻止 Cesium 默认加载在线底图导致控制台报错(TS 项目可能提示类型错误,但不影响运行)。【3】
  8. 使用 TileMapServiceImageryProvider 添加本地影像服务地址,如 http://127.0.0.1:8004/map/{z}/{x}/{reverseY}.jpg,并设置 fileExtension 与 tilingScheme。

部署地图影像服务的注意事项

下载的压缩包包含地图影像与地形数据两部分。使用 SingleTileImageryProvider 时,新版 API 已改为异步方式,需使用 await Cesium.SingleTileImageryProvider.fromUrl() 加载,旧版同步传入 url 与 rectangle 的写法会导致页面空白。服务端部署时,将解压后的数据放在静态资源目录下,并配置跨域支持即可。Cesium 1.128 版本目前仅支持 GeographicTilingScheme 和 WebMercatorTilingScheme 两种切片方案。

常见问题

问:为什么直接下载 CDN 上的 Cesium.js 文件到本地会报正则表达式错误? 答:Cesium.js 内部还引用了其他多个 JS 文件,单独下载其中一个文件会导致脚本解析失败,必须下载完整的压缩包解压后使用。

问:设置 imageryProvider: false 会不会影响功能? 答:该配置项虽在新版本中已移除,但设置后可避免 Cesium 默认加载在线底图导致控制台报错,不影响其他正常功能使用。

问:为什么使用 SingleTileImageryProvider 时页面显示为空白? 答:新版 API 已改为异步方式,需要使用 await Cesium.SingleTileImageryProvider.fromUrl() 加载图片,旧版同步传入参数的方式会失效。