Cesium可视化系统实战课程

okkaandw · 大约1个月之前 · 204 次点击 · 大约8小时之前 开始浏览    置顶

/s/19feKtKFrJDkbjT7b2DfKUQ 提取码:jkqp

一、Cesium介绍 Cesium是便用JavaScript开发的基于WebGL的实现三维地球和地图可视化的JS库,Cesium支持海量的三维模型数据,影像数据,地形高程数据,矢量数据等丰富的地理数据的加载。在交通,规划,城市管理,地形仿真等领城有非常广泛的应用。Cesium为三维的GIS提供了一个高效的数据可视化平台。

二、Cesium特性 1)支持多种视图 能够以 2D、2.5D 和 3D 形式对地图进行展示,并且无需分别编写代码。

2)支持地理信息数据动态可视化 a. 能够使用时间轴动态展示具有时间属性的数据。 b. 能够使用符合 OGC 标准的 WMS、WMTS 等多种地图服务,并且通过流式传输图像和全球地形。 c. 能够通过加载 KML、GeoJSON 等格式的数据绘制矢量图形。 d. 支持加载 3D Tiles 和 glTF 格式的三维模型,其中 3D Tiles 可以加载点云、倾斜摄影等大规模模型数据。

3)高性能和高精度的内置方法 a. 对 WebGL 进行优化,充分利用硬件加速功能,使用底层渲染方法进行可视化。 b. 提供了可以绘制大型折线、多边形、广告牌、标签等的 API。 c. 提供了可以控制摄像头和创造飞行路径等的坐标、向量、矩阵运算方法。 d. 提供了可以控制时间轴等组件的动画控件。

三、cesium.js的优点 1、支持地理空间数据 Cesium.js中的坐标系为地球空间坐标系,其原点为地球地心(three.js为空间坐标系,其原点为空间零点),在cesium中可以拾取坐标,测量距离、面积、体积以及坡度等信息;很多成熟的Cesium二次开发产品在此基础上有着更丰富的功能,包括开挖分析、淹没分析、天际线分析等。

2、支持加载不同的3d数据 Cesium.js中能支持多种3D数据格式,包括倾斜摄影模型、点云数据、BIM模型数据,并以3D Tiles的数据格式加载,3D Tiles是一种瓦片数据格式,将体量庞大的地形数据如倾斜数据、点云数据先分块分层并生成缓存,大大减轻了浏览器以及GPU的负荷,提高渲染效率。同时,基于3D Tiles文件可交互性、可编辑性特点,可以对模型进行剖切、裁剪、显示(亮度、透明度等)及绘制点面线等功能。

四、安装cesium  只需要几步就可以搭建出开发环境   1、通过访问helloworld这个示例来确保你的浏览器跟cesium兼容,如果不兼容,请查看故障   2、安装 node.js   3、提取代码克隆或下载zip都行   4、通过cmd导航到cesium项目的根路径   5、执行 npm install   6、执行 npm start   控制台就会显示Cesium development server running locally. Connect to http://localhost:8080/,不要关闭控制台   然后,通过浏览器访问 http://localhost:8080,你应该看到项目启动和运行。

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

<script setup> import { onMounted } from 'vue' import * as Cesium from 'cesium' onMounted(() => { // 使用Cesium的Ion服务进行认证 Cesium.Ion.defaultAccessToken = '你的Token'; // 创建一个Viewer实例 const viewer = new Cesium.Viewer('cesiumContainer', { // 使用默认的影像图层和地形图层 terrainProvider: Cesium.createWorldTerrain({ requestWaterMask: true }) }) // 其他初始化操作... }) </script>

在上述代码中,我们首先设置了Cesium的访问令牌,然后创建了一个Viewer实例,并指定了容器的ID。我们还设置了地形提供者,以加载默认的世界地形数据。最后,我们为Cesium的容器定义了一些基本的CSS样式。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

204 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传