Cesium快速入门

本文介绍了如何安装Node.js环境,配置Cesium依赖,并通过实例步骤搭建第一个Cesium程序,包括引入源码、创建HTML文件、编写基础代码以及申请许可密钥。同时概述了Cesium的界面和默认控件功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.引言

现有的gis开发方向较流行的是webgis开发,其中Cesium是一款开源的WebGIS库,主要用于实时地球和空间数据的可视化和分析。它提供了丰富的地图显示和数据可视化功能,并能实现三维可视化开发。Cesium适用于地球科学研究、军事情报分析、航空航天领域以及虚拟现实应用等方面。本文是基于Cesium教程进行实践操作后的总结,以使新手能快速入门Cesium。

1.Cesium环境搭建

1.1安装Node.js环境

(1)下载Node.js安装包
进入Node.js官网的下载页面进行下载: https://nodejs.org/en/
  在这里插入图片描述

(2)安装Node.js
①直接双击Node.js。
若安装时报错,这说明需要以管理员身份运行cmd,然后在cmd中运行Node.js安装程序。
  在这里插入图片描述
②安装Node.js后,为检查是否安装成功,在cmd中输入:node -v,出现版本号说明安装成功。
  在这里插入图片描述

1.2配置Cesium依赖

(1)下载Cesium代码包
访问Cesium官网下载推荐代码包: https://cesium.com/downloads/
  在这里插入图片描述

(2)安装Cesium依赖
安装包下载完成后,将其解压,进入解压缩后的目录,输入“npm install”,安装Cesium依赖。
  在这里插入图片描述

成功安装Cesium依赖结果如下,有少量缺陷报红色错误,不影响依赖Cesium主要功能。
  在这里插入图片描述

(3)启动服务
在Cesium依赖安装完成后,查看server.js,根据电脑情况设置端口等信息。
  在这里插入图片描述
在cmd中,再输入“node server.js”来开启服务,然后ctrl+点击网址,启动服务(浏览器必须支持WebGL,推荐使用Chrome浏览器)。
  在这里插入图片描述
拓展:可以在上图中了解两个重要的链接:Documentation和Sandcastle。
Documentation里面包括了Cesium的完整API说明,可以从中查看各个模块中的函数、属性、方法及部分调用代码示例,方便用户深入学习;
  在这里插入图片描述
Sandcastle是一个沙盒,里面包括了当前版本的各种示例,可以进行代码测试并导出测试代码。
  在这里插入图片描述

(4)通过http-server发布服务
①安装http-server
打开命令行,输入“npm install http-server -g”进行安装。
  在这里插入图片描述
②在文件目录,输入“http-server”,即可发布服务,复制发布后的网址并在浏览器打开,查看发布的服务。
若文件目录位于:D:\Cesium_Test,在该目录下启动终端,并输入指令发布服务。
  

### Cesium 使用教程概述 Cesium 是一款基于 WebGL 技术的开源 JavaScript 库,专注于全球范围内的 3D 地球和地图可视化。其功能强大且灵活,适合各种地理信息系统 (GIS) 和虚拟现实应用开发。以下是关于如何使用 Cesium 的详细教程。 --- #### 1. **环境搭建** 为了开始使用 Cesium,首先需要准备一个运行环境。可以通过以下两种方式进行安装: - **通过 NPM 安装**: 如果您正在构建现代化前端项目(如 Vue 或 React),可以使用 npm 来管理依赖项。 ```bash npm install cesium ``` - **通过 CDN 引入**: 对于简单的测试或原型开发,可以直接通过 CDN 引入 Cesium 脚本及其样式表。 ```html <script src="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Cesium.js"></script> <link href="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Widgets/widgets.css" rel="stylesheet"> ``` --- #### 2. **初始化 Viewer** Cesium 提供的核心组件是 `Viewer` 类,它封装了完整的 3D 场景逻辑。下面是一个基本的例子,展示了如何创建一个带有默认影像图层和地形图层的场景[^1]。 ```javascript import * as Cesium from 'cesium'; // 设置访问令牌(如果需要) Cesium.Ion.defaultAccessToken = 'your_access_token_here'; // 创建 Viewer 实例 const viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider: Cesium.createWorldTerrain({ requestWaterMask: true, requestVertexNormals: true }) }); ``` 在这里,我们指定了一个名为 `"cesiumContainer"` 的 DOM 元素作为渲染目标,并启用了世界地形支持。 --- #### 3. **加载模型与实体** Cesium 支持多种数据源,包括矢量数据、GLTF 模型和其他三维资源。以下是如何加载外部 GLTF 模型的示例[^2]: ```javascript const position = Cesium.Cartesian3.fromDegrees(-123.0744619, 44.0503706, 5000); const heading = Cesium.Math.toRadians(135); viewer.entities.add({ name: 'Example Model', position: position, orientation: Cesium.Transforms.headingPitchRollQuaternion( position, new Cesium.HeadingPitchRoll(heading, 0, 0) ), model: { uri: 'path/to/model.gltf', minimumPixelSize: 128, maximumScale: 20000 } }); viewer.trackedEntity = viewer.entities.getByIndex(0); ``` 此代码片段演示了如何将一个 GLTF 模型放置在指定坐标处,并调整其方向。 --- #### 4. **相机控制** Cesium 提供了精细的相机控制系统,允许开发者自由移动视角。例如,飞向特定位置的操作如下所示[^3]: ```javascript const targetPosition = Cesium.Cartesian3.fromDegrees(113.3191, 23.109, 1000); viewer.camera.flyTo({ destination: targetPosition, orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(-90), roll: 0 }, duration: 2 // 动画持续时间(秒) }); ``` 这段代码会让摄像机平滑过渡到广州塔附近的位置。 --- #### 5. **扩展功能** 除了基础的地图展示之外,Cesium 还具备许多高级特性,例如: - **OSM 建筑物加载**:利用 OpenStreetMap 数据生成城市建筑群[^3]。 ```javascript Cesium.createOsmBuildingsAsync().then(osmBuildings => { viewer.scene.primitives.add(osmBuildings); }); ``` - **动态 LOD 控制**:自动根据观察距离切换细节层次,从而优化性能[^4]。 --- #### 6. **集成到现代框架** 如果您希望将 Cesium 整合到 Vue 或 React 等现代框架中,则可能需要用到专门的插件或工具链。例如,在 Vite 项目中可以借助定制化的插件简化配置过程[^5]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值