您的位置:

Cesium三维可视化

一、介绍

Cesium是一个用于创建基于Web的三维地球应用程序的JavaScript库。它提供了许多现代的图形和计算功能,如地形和高度数据,插值,点云处理,线段,坐标转换等等。Cesium可以在任何现代浏览器和移动设备上运行,并且使用的是开放的Web标准,例如HTML5,CSS和JavaScript。

二、基本概念

Cesium创建的可视化场景是由技术和满足可维护性和可扩展性的模块化方法构建的。以下是Cesium中一些基本概念:

Scene: 表示一个3D场景,其中包含所有的几何体、图像地图和其他图形对象。

Camera: 控制观察场景的位置和方向。

Globe: 地球表面的可渲染区域。

Primitive: 表示地球上的几何体,例如点,线和多边形。

ImageryProvider: 提供渲染图像的数据源,例如地图服务器。

Entity: 可以表示一个点、线或面的实体。

三、场景创建

Cesium中的场景是在ViewerCesiumWidget中创建的。这些类通常不需要自己来创建,因为它们都有默认的配置:

var viewer = new Cesium.Viewer('cesiumContainer');

这将在HTML的元素cesiumContainer中创建一个默认配置的镜头视图。Cesium的开放性使得可以更精细地控制场景和视图,例如:

var viewer = new Cesium.Viewer('cesiumContainer', {
    imageryProvider : new Cesium.BingMapsImageryProvider({
        url : '//dev.virtualearth.net',
        key : 'bingMapsKey'
    }),
    baseLayerPicker : false
});

这将创建一个使用Bing地图影像服务的视图,同时在界面上禁用图层选择器。

四、实体创建

Cesium中的实体Entity是可视化对象的主要属性容器。这些对象在地球球面、地震数据可视化和空气交通管理等方面起着至关重要的作用。一个基本的例子可以帮助我们理解实体如何工作:

var viewer = new Cesium.Viewer('cesiumContainer');
var redBox = viewer.entities.add({
    name : 'Red box',
    position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 1000),
    box : {
        dimensions : new Cesium.Cartesian3(400000.0, 300000.0, 500000.0),
        material : Cesium.Color.RED
    }
});
viewer.zoomTo(redBox);

这将在球面上添加一个字符名为“Red box”的红色盒子。它还为盒子指定了位置、尺寸和颜色。调用viewer.zoomTo方法将视图放置在这个实体上。

五、高程和地形

Cesium提供了对地球表面高程和地形的可视化支持。它可以从离线材料中读取这些数据,也可以从在线图像地图中读取。以下是一个简单的例子,演示了如何在球面上绘制山脉的高程:

var viewer = new Cesium.Viewer('cesiumContainer');
var terrainProvider = new Cesium.CesiumTerrainProvider({
    url : '//assets.agi.com/stk-terrain/world'
});
viewer.scene.globe.terrainProvider = terrainProvider;

这将在球面上启用STK世界高程数据的使用。这可以让用户看到地球上的山脉和其他高程特征,同时在地面和察看近景时仍然很清晰。

六、动态模拟

Cesium可以用于动态模拟,例如地震和火山喷发。甚至还可以模拟人造卫星和太空探测器。以下是一个例子,演示如何用Cesium模拟一颗围绕地球运行的人造卫星:

var viewer = new Cesium.Viewer('cesiumContainer');
var satellite = viewer.entities.add({
    position: new Cesium.SampledPositionProperty(),
    availability: new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
        start: new Cesium.JulianDate.fromIso8601("2015-02-04T16:00:00.00Z"),
        stop: new Cesium.JulianDate.fromIso8601("2015-02-04T17:00:00.00Z")
    })]),
    model: {
        uri: './SampleData/model/CesiumSatellite.glb',
        scale: 200.0,
        minimumPixelSize : 128,
        maximumScale : 20000
    }
});

这将在球面上创建一个新的实体,在特定的时间范围内运行一个带有“Cesium卫星”模型的动态模拟。

总结

本文介绍了Cesium三维可视化中的一些基本概念,包括场景、实体、高程和地形以及动态模拟。这是一个非常强大的工具,可以用于创建增强现实、虚拟旅游、天气预报和火山喷发等应用程序。

Cesium三维可视化

2023-05-20
cesiumjs模型,cesium 模型格式

本文目录一览: 1、Cesiumjs可以加载倾斜摄影的OSGB数据吗 2、Cesium 3Dtiles模型多边形裁剪简单整理 3、Cesium的扩展工具包-EarthSDK使用指南1 4、影像加载篇:

2023-12-08
Cesium——开发全球3D可视化应用的利器

2023-05-18
cesiumjs搭建,cesium geojson

本文目录一览: 1、Cesium的扩展工具包-EarthSDK使用指南1 2、构建一个 Vite + Vue3 项目 开发Cesium 3、Cesium实战项目 4、cesium如何搭建dat.gui

2023-12-08
cesiumjs详细教程(cesium开发教程)

本文目录一览: 1、Cesium在js中调用entity的infobox单机事件 2、Cesium初始化选项 3、Cesium随笔:视锥绘制(上) 4、cesium如何搭建dat.gui 5、Cesi

2023-12-08
关于earthsdk+cesium可以放大缩小的流光线的信息

2023-01-04
cesiumjs中文网地址,cesium中文文档

本文目录一览: 1、cesium 怎样设置web服务器 2、Cesium初始化选项 3、Cesium实战项目 4、Cesium的扩展工具包-EarthSDK使用指南1 5、Cesium(四)加载影像图

2023-12-08
cesiumjs编译(cesium nodejs)

本文目录一览: 1、Cesium初始化选项 2、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 3、Cesium(四)加载影像图层 4、Cesium在js中调用entity

2023-12-08
cesium滑块控制模型透明度-cesium滑块控制模型透明

2023-01-07
Cesium可视域分析

2023-05-23
三维地图可视化

2023-05-18
替代cesium,替代测试表

2022-11-29
Cesium 3DTileset详解

2023-05-18
Cesium FlyTo详解

2023-05-18
cesiumjs地下管道,cesium管线

2022-11-25
深入探究Cesium CZML

2023-05-20
java方法整理笔记(java总结)

2022-11-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
Cesium中文API详解

2023-05-20
利用Cesium Primitive实现三维地球展示动态效果

2023-05-17