一、介紹
Cesium是一個用於創建基於Web的三維地球應用程序的JavaScript庫。它提供了許多現代的圖形和計算功能,如地形和高度數據,插值,點雲處理,線段,坐標轉換等等。Cesium可以在任何現代瀏覽器和移動設備上運行,並且使用的是開放的Web標準,例如HTML5,CSS和JavaScript。
二、基本概念
Cesium創建的可視化場景是由技術和滿足可維護性和可擴展性的模塊化方法構建的。以下是Cesium中一些基本概念:
Scene: 表示一個3D場景,其中包含所有的幾何體、圖像地圖和其他圖形對象。
Camera: 控制觀察場景的位置和方向。
Globe: 地球表面的可渲染區域。
Primitive: 表示地球上的幾何體,例如點,線和多邊形。
ImageryProvider: 提供渲染圖像的數據源,例如地圖服務器。
Entity: 可以表示一個點、線或面的實體。
三、場景創建
Cesium中的場景是在Viewer
或CesiumWidget
中創建的。這些類通常不需要自己來創建,因為它們都有默認的配置:
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三維可視化中的一些基本概念,包括場景、實體、高程和地形以及動態模擬。這是一個非常強大的工具,可以用於創建增強現實、虛擬旅遊、天氣預報和火山噴發等應用程序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/246391.html