首页 > 其他分享 >Cesium之Quick Start

Cesium之Quick Start

时间:2023-01-13 00:12:53浏览次数:58  
标签:Start Viewer 创建 CesiumJS Quick Cesium

1. 引言

Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业用途

Cesium官网:Cesium: The Platform for 3D Geospatial

Cesium GitHub站点:CesiumGS/cesium: An open-source JavaScript library for world-class 3D globes and maps (github.com)

API文档:Index - Cesium Documentation

本文描述通过CDN引入Cesium并创建一个三维地球

2. 快速使用

官方的Quick Start:CesiumJS Quickstart – Cesium

这里,笔者使用最简单的方式——通过CDN引入Cesium,搭建一个Quick Start

2.1 搭建网页框架

创建一个基础的HTML页面(使用编辑器快捷键生成,比如Emmet语法:html:5):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

2.2 引入Cesium

参考CesiumJS Quickstart – Cesium中提供的CDN地址,引入网页:

<!-- Include the CesiumJS JavaScript and CSS files -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.101/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.101/Build/Cesium/Widgets/widgets.css" rel="stylesheet">

2.3 创建一个容器

创建一个div容器,用来装载Cesium:

<div id="cesiumContainer"></div>

2.4 创建一个Viewer

任何Cesium应用程序的基础都是Viewer,Viewer是一个带有多种功能的可交互的三位数字地球的容器(盒子),创建一个Viewer和HTML中的div绑定即可

另外,由于需要使用Cesium官方提供的很多资源,比如影像底图等,需要设置Token。获取Token需要注册Cesium,并转到“访问令牌”选项卡复制。如果使用最新的Cesium.js,可以不使用Token,也能加载

<script>
    Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlMTk4ZTYyNy00MjkxLTRmZWYtOTg1MS0wOThjM2YzMzIzYzEiLCJpZCI6NzEyMSwic2NvcGVzIjpbImFzciIsImdjIl0sImlhdCI6MTU0ODMxNzI5OX0.rKV8Ldl_bgR3lVvNsbHhTX62j8JH8ADCIWAwk7tXpr8';
    const viewer = new Cesium.Viewer('cesiumContainer');
</script>

2.5 预览地图

至此,已经可以加载一个三维地球,完整代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html,
        body,
        #cesiumContainer {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
    </style>
    <!-- Include the CesiumJS JavaScript and CSS files -->
    <script src="https://cesium.com/downloads/cesiumjs/releases/1.101/Build/Cesium/Cesium.js"></script>
    <link href="https://cesium.com/downloads/cesiumjs/releases/1.101/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>

<body>
    <div id="cesiumContainer"></div>
    <script>
        Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlMTk4ZTYyNy00MjkxLTRmZWYtOTg1MS0wOThjM2YzMzIzYzEiLCJpZCI6NzEyMSwic2NvcGVzIjpbImFzciIsImdjIl0sImlhdCI6MTU0ODMxNzI5OX0.rKV8Ldl_bgR3lVvNsbHhTX62j8JH8ADCIWAwk7tXpr8';
        const viewer = new Cesium.Viewer('cesiumContainer');
    </script>
</body>

</html>

使用HTTP的方式访问网页(笔者这里使用VS Code的Live Server插件),一个简单的三维地球就创建完成:

image-20230108014504693

3. 参考资料

[1]CesiumJS Quickstart – Cesium

[2][CesiumJS]Cesium入门4 - 创建Cesium Viewer - Cesium中文网 (cesiumcn.org)

[3]cesium简介_右弦GISer的博客-CSDN博客_cesium

标签:Start,Viewer,创建,CesiumJS,Quick,Cesium
From: https://www.cnblogs.com/jiujiubashiyi/p/17034009.html

相关文章

  • Cesium 几何编辑
    最近做了个Cesium几何编辑的功能,通过鼠标画点线面等,记录一下问题感兴趣的朋友可以移步:LiZzhi/cesium-plugin(github.com)功能本身不难,无非就是封装鼠标事件,记录好数据,随......
  • Cesium模型贴地问题(八)
    2023-01-121.sampleTerrainMostDetailed   根据提供的terrainPrivider和点的弧度坐标计算出当前点的高度信息。 varp=newCesium.Cartographic.fromC......
  • codechef Starters73
    https://www.codechef.com/START73A?order=desc&sortBy=successful_submissionsHamiltonianTree手玩一下走哈密顿路的过程,一定是,走一条树上路径,然后走过新加的边,再到另......
  • dremio FragmentStarter 简单说明
    FragmentStarter主要进行FragmentExecutor的启动管理Fragment执行简单说明dremio对于Fragment的执行与apachedrill是一致的,会包含root,中间,以及leaf,同时Fragment会......
  • KingbaseES V8R3数据库运维案例之---不完整的启动包(incomplete startup packet)复现
    案例说明:在KingbaseESV8R3数据库的sys_log日志中,出现以下故障信息“不完整的启动包(incompletestartuppacket)”日志信息。本案例复现此日志信息发生的原因。如下图所示......
  • JAVA中JSON嵌套报错:Cannot deserialize instance of `java.util.ArrayList` out of ST
      org.springframework.http.converter.HttpMessageNotReadableException:JSONparseerror:Cannotdeserializeinstanceof`java.util.ArrayList`outofSTART_O......
  • Cesium中各种坐标以及相互转换(七)
    2023-01-111.坐标系Cartesian3笛卡尔坐标,又叫世界坐标,是一个三维空间中的点,具有xyz,类似:(-1314910.6675027965,5328726.846411945,3238183.748823095),单位为米 原......
  • Cesium给3dtileset中的每个瓦片添加一个billboard(六)
    2023-01-10没成功,记录一下怎么失败的,以后会了来更新 1.Cesium3DTileset:瓦片集2.Cesium3DTile(瓦片集中的单个瓦片):通过Cesium3DTileset.tileVisible来获取单个瓦片3......
  • K8S 三种探针 ReadinessProbe、LivenessProbe和StartupProbe 之探索
    事件背景因为k8s中采用大量的异步机制、以及多种对象关系设计上的解耦,当应用实例数增加/删除、或者应用版本发生变化触发滚动升级时,系统并不能保证应用相关的service......
  • TS+Cesium配置
    记录一下TS+Cesium配置过程首先npm安装cesium和webpack一众包,如下:{//package.json"dependencies":{"@babel/preset-env":"^7.20.2","@......