【Cesium入门教程】第一课:Cesium简介与快速入门详细教程

ops/2025/1/20 6:06:27/

Cesium概述

Cesium是一个基于JavaScript开发的WebGL三维地球和地图可视化库。

它利用了现代Web技术,如HTML5、WebGL和WebAssembly,来提供跨平台和跨浏览器的三维地理空间数据可视化。

Cesium的主要特点包括:

  • 跨平台、跨浏览器:无需额外插件,即可在多种操作系统和浏览器上运行。
  • 海量数据支持:Cesium定义了3D Tiles数据格式,支持大规模三维模型和地形数据的加载与渲染。
  • 丰富的地图模式:支持三维、二维和哥伦布视图(2.5D),提供多种地图和地形图层选择。
  • 交互功能:支持地址搜索、信息属性框等用户交互功能,以及全屏模型和WebVR虚拟现实体验。

Cesium应用场景

Cesium被广泛应用于多个领域,包括但不限于:

  • 交通管理:用于模拟交通流量,进行交通规划和分析。
  • 城市规划:辅助进行城市设计,展示城市规划的三维效果。
  • 城市管理:帮助城市管理者进行城市监控和应急响应规划。
  • 地形仿真:在军事和地质研究中模拟地形环境,进行战术训练和地质分析。

环境准备

开始使用Cesium之前,需要做一些基本的环境准备工作:

  • 获取Cesium资源:

访问Cesium的官方网站和中文文档,了解如何获取Cesium的SDK和API文档。

中文文档

Cesium中文api文档 | Index - Cesium Documentation

官网

Cesium: The Platform for 3D Geospatial

例子

Cesium Sandcastle

  • 安装开发工具:

确保你的开发环境中安装了Node.js和npm(或pnpm),这些是JavaScript项目管理和打包的常用工具。

创建Cesium项目

创建一个Cesium项目的基本步骤如下:

1. 使用pnpm创建项目:

pnpm create vite 项目名

2. 进入项目目录:

cd 项目名

3. 安装项目依赖:

pnpminstall

4. 安装Cesium依赖

在项目中安装Cesium及其构建插件:

pnpm i cesium@1.99 vite-plugin-cesium

5. 配置项目

修改项目的配置文件vite.config.js,以确保Cesium可以正确地与Vite.js一起工作:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import cesium from 'vite-plugin-cesium'export default defineConfig({plugins: [vue(),cesium()]
})

在Vue中引入Cesium

在app.vue中引入Cesium,并打印Cesium对象以确认安装成功:

import * as Cesium from 'cesium'console.log(Cesium)

运行项目

使用以下命令启动开发服务器,并在浏览器中查看Cesium的加载效果:

npm run dev

快速开始示例

在Cesium项目中,通常会首先创建一个Viewer对象,它提供了一个预配置的Cesium场景,用于显示地球或其他场景。以下是一个创建基本Cesium Viewer的示例:

<template><div id="cesiumContainer"></div></template><script setup>import * as Cesium from 'cesium'
import { onMounted } from 'vue'
onMounted(() => {Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5ZGJ1OTBmMi0xYjNmLTRhZ2YtOTI1My0zNGIwOGUyNGFkYTU1LCJpZCI6MTE1MTg3LCJpYXQiOjE2Njg2NzM2NTB9.kQwPYhh1KTzNCwTFKow36f8DpBGhdDhrpzhHFUfTk'// const esri = new Cesium.ArcGisMapServerImageryProvider({//   url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",//   enablePickFeatures: false,// });// Viewer是一切API的开始let viewer = new Cesium.Viewer('cesiumContainer', {// imageryProvider: esri,  //默认的谷歌地图影像 影像图层 ImageryLayer//地形图层TerrainProviderterrainProvider: Cesium.createWorldTerrain({// requestWaterMask: true //水面特效}),})
})</script><style scoped>#cesiumContainer {width: 100vw;
height: 100vh;
overflow: hidden;
}
</style>

在上述代码中,我们首先设置了Cesium的访问令牌,然后创建了一个Viewer实例,并指定了容器的ID。

我们还设置了地形图层,以加载默认的世界地形数据。

添加了水面特效:

cesium中的各类控键:

有一些不常用的控件,可以通过下面的方式进行隐藏:

时间轴控件:

timeline:false,//时间轴控件

动画控件:

animation:false,//动画控件

搜索按钮:

geocoder:false,//搜索按钮

主页按钮:

homeButton:false,//主页按钮

投影方式按钮:

sceneModePicker:false,//投影方式按钮

图层选择按钮:

baseLayerPicker:false,//图层选择按钮

帮助手势按钮:

navigationHelpButton:false,//帮助手势按钮

全屏按钮

fullscreenButton:false,//全屏按钮


通过本教程,应该对Cesium有了一个基本的了解,并且能够开始创建自己的Cesium项目。在接下来的教程中,我们将深入探讨Cesium的更多高级特性和应用场景。


http://www.ppmy.cn/ops/151583.html

相关文章

Vue学习之旅:从生命周期到工程化开发与组件实践(生命周期+工程化开发)

Vue学习之旅&#xff1a;从生命周期到工程化开发与组件实践 文章目录 Vue学习之旅&#xff1a;从生命周期到工程化开发与组件实践一、Vue生命周期&#xff1a;理解组件的“一生”&#xff08;一&#xff09;生命周期的四个阶段&#xff08;二&#xff09;生命周期钩子函数 二、…

spring-cloud-starter-gateway 使用中 KafkaAppender的问题

公司需要将应用日志上报到kafka&#xff0c;以供分析与查看。 结合logback可以完成此功能&#xff0c;大致配置如下&#xff1a; <appender name"KafkaAppender" class"com.github.danielwegener.logback.kafka.KafkaAppender"><encoder class&…

Java 面试题 - ArrayList 和 LinkedList 的区别,哪个集合是线程安全的?

Java 面试题 - ArrayList 和 LinkedList 的区别&#xff0c;哪个集合是线程安全的&#xff1f; 在 Java 开发中&#xff0c;ArrayList和LinkedList是两个常用的集合类&#xff0c;它们在数据结构和性能上有诸多不同&#xff0c;同时线程安全性也各有特点。深入理解这些差异&am…

【Petri网导论学习笔记】Petri网导论入门学习(十二) —— chap5 一些 Petri 网子类的动态性质分析和判定 5.1标识S-图

目录 第5章 一些 Petri 网子类的动态性质分析和判定5.1 标识 S S S-图**定义 5.1****例 5.1****引理 5.1****定理 5.1****定理 5.2**第5章 一些 Petri 网子类的动态性质分析和判定 Petri 网的动态性质中,比较重要的有可达性、有界性(包括安全性)、活性和公平性等。其中对可…

初学stm32 --- CAN

目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过…

P6周:VGG-16算法-Pytorch实现人脸识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境 语言环境&#xff1a;Python 3.8.12 编译器&#xff1a;jupyter notebook 深度学习环境&#xff1a;torch 1.12.0cu113 一、前期准备 1.设置GPU im…

Java 17 新特性详解与代码示例

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…

从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用

文章目录 1. 后端项目搭建 1.1 环境准备1.2 数据表准备1.3 SpringBoot3项目创建1.4 MySql环境整合&#xff0c;使用druid连接池1.5 整合mybatis-plus 1.5.1 引入mybatis-plus1.5.2 配置代码生成器1.5.3 配置分页插件 1.6 整合swagger3&#xff08;knife4j&#xff09; 1.6.1 整…