1. 程式人生 > 實用技巧 >學習使用Cesium平臺進行構建使用實際資料構建您的第一個Cesium應用

學習使用Cesium平臺進行構建使用實際資料構建您的第一個Cesium應用

快速開始

這是使用真實資料使用Cesium構建3D應用程式的快速入門。您將學習在網頁上設定Cesium應用程式,如下所示:

步驟1.建立一個帳戶並獲得令牌

Cesium ion是用於流式傳輸和託管3D內容的開放平臺。

註冊免費的 帳戶,以獲取適用於您應用的全球衛星影象和真實3D內容。

登入後:

  1. 轉到您的訪問令牌標籤。
  2. 請注意預設令牌旁邊的複製按鈕。我們將在下一步中使用此令牌。

步驟2.設定CesiumJS客戶端

CesiumJS是一個開源JavaScript引擎。我們將使用它來視覺化從Cesium中載入的內容。

本指南涵蓋了兩種設定CesiumJS的方法:

  • 從CDN匯入
  • 使用NPM安裝

從CDN匯入

下面是一個完整的HTML頁面,該頁面將載入所需的JavaScript和CSS檔案並初始化San Francisco的場景。

只需替換your_access_token為您的Cesium訪問令牌即可。

複製到剪貼簿。資料複製剪貼簿。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <!-- Include the CesiumJS JavaScript and CSS files -->
  <script src="https://cesium.com/downloads/cesiumjs/releases/1.74/Build/Cesium/Cesium.js"></script>
  <link href="https://cesium.com/downloads/cesiumjs/releases/1.74/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
  <div id="cesiumContainer"></div>
  <script>
    // Your access token can be found at: https://cesium.com/ion/tokens.
    Cesium.Ion.defaultAccessToken = 'your_access_token';
    // Initialize the Cesium Viewer in the HTML element with the `cesiumContainer` ID.
    const viewer = new Cesium.Viewer('cesiumContainer', {
      terrainProvider: Cesium.createWorldTerrain()
    });    
    // Add Cesium OSM Buildings, a global 3D buildings layer.
    const buildingTileset = viewer.scene.primitives.add(Cesium.createOsmBuildings());   
    // Fly the camera to San Francisco at the given longitude, latitude, and height.
    viewer.camera.flyTo({
      destination : Cesium.Cartesian3.fromDegrees(-122.4175, 37.655, 400),
      orientation : {
        heading : Cesium.Math.toRadians(0.0),
        pitch : Cesium.Math.toRadians(-15.0),
      }
    });
  </script>
 </div>
</body>
</html>

使用NPM安裝

如果使用Webpack,Parcel或Rollup等模組捆綁程式構建應用程式,則可以通過執行以下命令安裝CesiumJS:

npm install cesium

下面的程式碼載入所需的JavaScript和CSS檔案。

只需替換your_access_token為您的Cesium訪問令牌即可。

複製到剪貼簿。資料複製剪貼簿。
// The URL on your server where CesiumJS's static files are hosted.
window.CESIUM_BASE_URL = '/';

import * as Cesium from 'cesium';
import "cesium/Build/Cesium/Widgets/widgets.css";

// Your access token can be found at: https://cesium.com/ion/tokens.
Cesium.Ion.defaultAccessToken = 'your_access_token';
// Initialize the Cesium Viewer in the HTML element with the "cesiumContainer" ID.
const viewer = new Cesium.Viewer('cesiumContainer', {
  terrainProvider: Cesium.createWorldTerrain()
});    
// Add Cesium OSM Buildings, a global 3D buildings layer.
const buildingTileset = viewer.scene.primitives.add(Cesium.createOsmBuildings());   
// Fly the camera to San Francisco at the given longitude, latitude, and height.
viewer.camera.flyTo({
  destination : Cesium.Cartesian3.fromDegrees(-122.4175, 37.655, 400),
  orientation : {
    heading : Cesium.Math.toRadians(0.0),
    pitch : Cesium.Math.toRadians(-15.0),
  }
});

配置CESIUM_BASE_URL

CesiumJS需要一些靜態檔案託管在您的伺服器上,例如Web Worker和SVG圖示。配置模組捆綁器以複製以下四個目錄,並將它們用作靜態檔案:

  • node_modules/cesium/Build/Cesium/Workers
  • node_modules/cesium/Build/Cesium/ThirdParty
  • node_modules/cesium/Build/Cesium/Assets
  • node_modules/cesium/Build/Cesium/Widgets

window.CESIUM_BASE_URLCesiumJS匯入之前全域性變數必須設定。它必須指向提供這四個目錄的URL。

例如,如果在處Assets/Images/cesium_credit.png提供的圖片在之前帶有static/Cesium/字首http://localhost:8080/static/Cesium/Assets/Images/cesium_credit.png,那麼您可以將基本網址設定如下:

複製到剪貼簿。資料複製剪貼簿。
window.CESIUM_BASE_URL = '/static/Cesium/';

有關完整的Webpack配置,請參閱Cesium Webpack示例