1. 程式人生 > >Cesium入門2 - Cesium環境搭建及第一個示例程式

Cesium入門2 - Cesium環境搭建及第一個示例程式

Cesium入門2 - Cesium環境搭建及第一個示例程式

Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/

驗證瀏覽器

Cesium需要瀏覽器支援WebGL,可以通過CesiumJS官網提供的一個HelloWorld例子來測試自己的瀏覽器是否支援Cesium。(推薦使用Chrome)
測試地址:
https://cesiumjs.org/Cesium/Apps/HelloWorld.html

選擇IDE

官網中寫到:

If you’re already a seasoned developer,
you most likely have a favorite editor or development environment; for example, most of the Cesium team uses Eclipse. If you’re just starting out, a great free and open-source editor is Notepad++, which you can download from their website. Ultimately any text editor will do, so go with the one that you are most comfortable with
.

如果你已經是一個經驗豐富的開發人員,你很可能有一個最喜歡的編輯器或開發環境; 例如,大多數Cesium團隊使用Eclipse。如果你剛剛開始,一個偉大的免費和開源的編輯器是Notepad ++,你可以從他們的網站下載。最終任何文字編輯器都會做,所以去與你最舒適的。

我個人之前開發PHP較多,所以我使用的是PHPStorm,其實我不推薦Eclipse,我比較推薦和Idea一母同胞的WebStorm。考慮到工程和資料夾的管理,我也不推薦Notepad++,輕量級的IDE我比較推薦Sublime Text.

下載Cesium原始碼

最新的release版本程式碼下載地址:
https://cesiumjs.org/tutorials/cesium-up-and-running/

下載後,將zip檔案解壓到您選擇的新目錄中,我將在整個教程中將此檔案稱為Cesium root目錄。內容應該看起來像下面。

image

直接點選index.html是無效的,需要放入Web Server容器中,才能執行起來。

Server端

Cesium是純前端的程式碼,官方給出的原始碼中,配套了nodejs的server端,以及可以通過nodejs進行安裝部署。實際上可以將Cesium部署進入tomcat(geoserver)、apache、nginx等伺服器中。

官網推薦的是nodejs

  1. 從官網中下載Node.js(https://nodejs.org/en/), 實際上nodejs有一些引數可是配置,使用預設的引數即可。.
  2. 在Cesium所在的資料夾目錄,開啟cmd或者bash敲入命令
npm install 

下載依賴的npm模組,比如express等。如果成功,會在Cesium資料夾中床架 ‘node_modules’資料夾。
3. 最後在cmd或者bash中執行
shell node server.js
或者
shell npm start

  1. 成功之後能看到如下的截圖
    image

控制檯會顯示:

Cesium development server running locally.  Connect to http://localhost:8080

備註:不能關閉控制檯,保持一直執行狀態。開啟瀏覽器,輸入 http://localhost:8080 即可訪問Cesium.

如果你不想用nodejs

Cesium是一個開源專案,GitHub上的下載地址為:https://github.com/AnalyticalGraphicsInc/cesium
最簡單的安裝方式,就是普通的JS檔案載入,只需要從Github中下載其js程式碼,放到自己的專案中,在html頁面中引用即可。如下:
image

新建一個helloworld.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello 3D Earth</title>
    <script src="CesiumUnminified/Cesium.js"></script>
    <style>
        @import url(CesiumUnminified/Widgets/widgets.css);
        html, body, #cesiumContainer {
            width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
        }
    </style>
</head>
<body>
    <div id="cesiumContainer"></div>
    <script src="app.js"></script>
</body>
</html>

新建一個app.js

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

其中cesiumContainer為html中的地圖顯示div的id。就是這麼簡單,瀏覽器開啟上述html頁面,便可看到一個三維地球。底圖為微軟影像只是載入到了三維地球上,包含放大、縮小、平移等基本線上地圖功能,同時還包含了時間軸等與時間有關的控制元件,這是Cesium的一個特色,其地圖、物件以及場景等能與時間相關聯。

本地的Hello World程式

現在本地的node服務已經執行起來,開啟瀏覽器,輸入:http://localhost:8080/Apps/HelloWorld.html.
能看到和官方一模一樣的hello wolrd 三維數字地球。
image

hello World程式碼分析

官網hello world程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <!-- Use correct character set. -->
  <meta charset="utf-8">
  <!-- Tell IE to use the latest, best version. -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
  <title>Hello World!</title>
  <script src="../Build/Cesium/Cesium.js"></script>
  <style>
      @import url(../Build/Cesium/Widgets/widgets.css);
      html, body, #cesiumContainer {
          width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
      }
  </style>
</head>
<body>
  <div id="cesiumContainer"></div>
  <script>
    var viewer = new Cesium.Viewer('cesiumContainer');
  </script>
</body>
</html>

以下四個步驟將Cesium加入到html中:

  1. 引入Cesium.js, 該javascript定義了Cesium object
<script src="../Build/Cesium/Cesium.js"></script>
  1. 匯入Cesium Viewer widget的樣式
@import url(../Build/Cesium/Widgets/widgets.css);
  1. cesium view存在於該div中
<div id="cesiumContainer"></div>
  1. 最終建立cesium viewer
var viewer = new Cesium.Viewer('cesiumContainer');

Cesium中文網交流QQ群:807482793

Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/