cesium-1.92源码编译

下载cesium源码

cesium源码下载

Cesium 官方包主要目录介绍

  • Apps/SampleData目录:示例数据目录
  • Apps/Sandcastle目录:官方示例目录
  • Build/Cesium目录:压缩好的cesium库,项目中主要使用的
  • Build/CesiumUnminified目录:未压缩的cesium库,可用于项目调试
  • Build/Documentation/目录:API文档目录
  • Source目录:Cesium源码
  • ThirdParty目录:外部依赖库,不同于Cesium的第三方库
  • index.html:导航首页
  • server.cjs:基于node.js的web服务

执行编译代码

  1. 编译前注意要 npm i ,以及 全局安装 glup
js 复制代码
npm i
npm i gulp -g

否则会报错:

  1. 由于编译过程占用磁盘、CPU和内存都很高,接近100%,所以,编译前先将360安全卫士、360杀毒软件、开发工具、数据库服务等关闭或停止服务,然后执行如下命令编译:
js 复制代码
npm run release
  1. 报错:No gulpfile found

将 gulpfile.cjs 改为 gulpfile.js

  1. 再编译,报错:ReferenceError: require is not defined

原因是 package.json中 添加了"type":"module",将该字段删除

  1. 再编译,报错:Error: ENOENT: no such file or directory, open 'Apps.jshintrc'

下载放到相应的目录

Apps/.jshintrc

Apps/Sandcastle/.jshintrc

懒得下载也可以复制以下操作:

  • 1、在 Apps 文件夹下,新增 .jshintrc 文件,文件内容如下:
js 复制代码
{
    "bitwise": false,
    "camelcase": false,
    "curly": true,
    "eqeqeq": true,
    "forin": true,
    "freeze": true,
    "immed": true,
    "latedef": false,
    "newcap": true,
    "noarg": true,
    "noempty": true,
    "nonbsp": true,
    "nonew": true,
    "plusplus": false,
    "quotmark": false,
    "undef": true,
    "unused": "vars",
    "strict": true,
    "asi": false,
    "boss": false,
    "debug": false,
    "eqnull": false,
    "moz": false,
    "evil": false,
    "expr": false,
    "funcscope": false,
    "globalstrict": false,
    "iterator": false,
    "lastsemic": false,
    "laxbreak": false,
    "laxcomma": false,
    "loopfunc": false,
    "multistr": true,
    "noyield": false,
    "notypeof": false,
    "proto": false,
    "scripturl": false,
    "shadow": false,
    "sub": false,
    "supernew": false,
    "validthis": false,
    "browser": true,
    "browserify": false,
    "couch": false,
    "devel": true,
    "dojo": false,
    "jasmine": false,
    "jquery": false,
    "mocha": true,
    "mootools": false,
    "node": false,
    "nonstandard": false,
    "prototypejs": false,
    "qunit": false,
    "rhino": false,
    "shelljs": false,
    "worker": false,
    "wsh": false,
    "yui": false
  }
  • 2、在 Apps/Sandcastle 文件夹下,新增 .jshintrc 文件,文件内容如下:
js 复制代码
{
    "extends": "../.jshintrc",
    "unused": false,
    "esversion": 10,
    "predef": [
      "JSON",
      "require",
      "console",
      "Sandcastle",
      "Cesium"
    ]
  }
  1. 再次编译,报错:Error: Command failed: npx jsdoc --configure Tools/jsdoc/ts-conf.json

从github下载Tools放到根目录下。

  1. 编译成功

运行项目

编译完成后,拷贝编译好的 Build/Cesium 文件夹到项目中使用。

注意:使用 npm run release 编译后的代码是没有 Development 模块的。想要 Development 模块需要再执行 npm run build 。之后再执行 npm start 就可以看到Development 模块了。

  • npm start 启动服务,端口号强制为8080。

如果 8080 端口被占用,服务跑起不来。可以手动换端口,执行 node server.js --port 8081

启动的服务只能在本机查看,如果想在局域网内其他机器上观看,执行 npm run startPublic

  • npm run build 在Source目录下生成了一个Cesium.js文件(索引)。

  • npm run minifyRelease 输出生产环境下的Cesium.js文件,输出目录在Build/Cesium/下。

  • npm run release 同时输出调试版的Cesium.js、生产环境下的Cesium.js和api文档。

    • 在Build/CesiumUnminified目录下生成调试版的Cesium.js文件;
    • 在Build/Cesium目录下生成压缩优化好的(生产环境下)的Cesium.js文件;
    • 并且还生成了Cesium的api文档,文档放在Build/Documentation目录下。

查看私有文档

  1. 把文件中的@private换成@public
  2. npm start 启动服务
  3. 选择文档
  1. 查看私有文档
相关推荐
gis_rc2 天前
python下shp转3dtiles
python·3d·cesium·3dtiles·数字孪生模型
grasperp3 天前
3DTiles数据切片工具,支持LAS、OBJ、FBX 3DTiles怎么切片?3DTiles切片
cesium·3dtiles·三维gis·3dtiles切片·数据切片
duansamve4 天前
Cesium中实现在地图上移动/旋转点、线、面
cesium
冥界摄政王6 天前
CesiumJS学习第四章 替换指定3D建筑模型
3d·vue·html·webgl·js·cesium
冥界摄政王8 天前
Cesium学习第二章 camera 相机
node.js·html·vue3·js·cesium
冥界摄政王9 天前
Cesium学习第一章 安装下载 基于vue3引入Cesium项目开发
vue·vue3·html5·webgl·cesium
你们瞎搞10 天前
Cesium加载20GB航测影像.tif
前端·cesium·gdal·地图切片
闲云一鹤11 天前
Cesium 使用 Turf 实现坐标点移动(偏移)
前端·gis·cesium
二狗哈12 天前
Cesium快速入门34:3dTile高级样式设置
前端·javascript·算法·3d·webgl·cesium·地图可视化
二狗哈13 天前
Cesium快速入门33:tile3d设置样式
3d·状态模式·webgl·cesium·地图可视化