Cesium中文教程-入門指南(Getting Started)

入門指南(Getting Started)
學習使用全球地形、圖像、3D瓦片和地理編碼(geocoding)構建Cesium應用程序。
cesium
           1 即將構建的Cesium app,點擊進行交互
  CesiumJS是一個應用於web 3D地圖的JavaScript庫。Cesium ion是發現3D內容和填充自己的數據流中心。CesiumJS和ion一起協同工作,能夠構建世界級3D地圖應用程序。
使用Cesium ion對3D數據進行優化,並在CesiumJS中可視化
        2使用Cesium ion對3D數據進行優化,並在CesiumJS中可視化
第一個應用程序(Your first app)
下面是你的第一個Cesium應用程序源碼:

1.	<!DOCTYPE html>  
2.	<html lang="en">  
3.	<head>  
4.	  <meta charset="utf-8">  
5.	  <script src="https://cesiumjs.org/releases/1.56.1/Build/Cesium/Cesium.js"></script>  
6.	  <link href="https://cesiumjs.org/releases/1.56.1/Build/Cesium/Widgets/widgets.css" rel="stylesheet">  
7.	</head>  
8.	<body>  
9.	  <div id="cesiumContainer" style="width: 700px; height:400px"></div>  
10.	  <script>  
11.	    Cesium.Ion.defaultAccessToken = 'your_access_token';  
12.	    var viewer = new Cesium.Viewer('cesiumContainer');  
13.	  </script>  
14.	</body>  
15.	</html>  

注意:創建一個Cesium ion賬戶
  注意上面代碼中的your_access_token佔位符。創建一個Cesiun ion賬戶來使用本教程中的3D內容。在這裏註冊(Sign up here),上面的示例代碼將使用你的token自動進行更新。如果已經有賬戶,請登錄(sign in)。
  Web應用需要web服務,CesiumJS同樣需要。爲了簡單期間,本教程略過服務設置,使用在線應用IDE Glitch進行web開發。點擊(clicking here)創建一個新的Glitch工程,忽略模板中的說明,點擊index.html,刪除裏面的所有內容,並使用上面的代碼。
Glitch IDE
              3 Glitch IDE
點擊 按鈕,它將打開一個新的窗口作爲Cesium應用的響應。當你修改代碼時,視圖將自動更新。
CesiumJS默認使用由ion賬戶提供的Bing底圖
          4 CesiumJS默認使用由ion賬戶提供的Bing底圖
代碼分解(Breaking down the code)
在HTML的head內容中包含CesiumJS庫

1.	<script src="https://cesiumjs.org/releases/1.56.1/Build/Cesium/Cesium.js"></script>  
2.	<link href="https://cesiumjs.org/releases/1.56.1/Build/Cesium/Widgets/widgets.css" rel="stylesheet">  

創建一個HTML元素來保存CesiumJS widget:

1.	<div id="cesiumContainer"></div>  

ion賬戶提供一個token來訪問Bing底圖。由於已經登錄了Cesium ion,所以默認賬戶的token自動在本教程中使用:

1.	Cesium.Ion.defaultAccessToken = '';  

最後,創建一個頂部的Cesium部件,命名爲Viewer,使用上面定義的HTML div元素:

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

添加Cesium世界地形(Adding Cesium World Terrain)
  Cesium World Terrain(Cesium世界地形)是一個高分辨率的全球地形asset,其保存在你的ion賬戶中。用以下代碼代替創建的Viewer widget,將它添加到你的Cesium應用程序:

1.	var viewer = new Cesium.Viewer('cesiumContainer', {  
2.	    terrainProvider: Cesium.createWorldTerrain()  
3.	});  

當你放大到例如“Grand Canyon,AZ”這樣的地方,將看到Cesium世界地形的效果:
10米分辨率科羅拉多大峽谷
             5 10米分辨率科羅拉多大峽谷
加載自己數據(Loading your own data)
  你可以上傳自己的數據到Ceisum ion,並將其瓦片化爲3D Tiles,3D Tiles是一種對海量異構三維地理空間數據流的開放規範。本教程中,我們提供帶有單個建築示例的KML/COLLADA包。使用它創建一個3D Tiles tileset,並將其添加到應用程序中。點擊(clicking here)來下載。
  導航到ion,並將剛下載的AGI_HQ.kmz文件拖拽到頁面任何位置,點擊上傳。
上傳完成後,ion將立刻開始tiling處理並在右上角報告進度。瓦片化完成後,將在左側出現新asset選項,按頁面右下角示例代碼旁邊的copy(複製)按鈕。將結果複製到Glitch中,創建Viewer行之後。

1.	var tileset = viewer.scene.primitives.add(  
2.	    new Cesium.Cesium3DTileset({  
3.	        url: Cesium.IonResource.fromAssetId(your_asset_id)  
4.	    })  
5.	);  

使用一行代碼,將程序的默認視圖設置爲tileset:

1.	viewer.zoomTo(tileset)  

加載到CesiumJS中的3D Tiles asset,與你自己的asset看起來有所不同
     6 加載到CesiumJS中的3D Tiles asset,與你自己的asset看起來有所不同
祝賀!你已經創建了第一個Cesium app。
以下是完整的參考示例:

1.	<!DOCTYPE html>  
2.	<html lang="en">  
3.	<head>  
4.	  <meta charset="utf-8">  
5.	  <script src="https://cesiumjs.org/releases/1.56.1/Build/Cesium/Cesium.js"></script>  
6.	  <link href="https://cesiumjs.org/releases/1.56.1/Build/Cesium/Widgets/widgets.css" rel="stylesheet">  
7.	</head>  
8.	<body>  
9.	  <div id="cesiumContainer" style="width: 700px; height:400px"></div>  
10.	  <script>  
11.	    Cesium.Ion.defaultAccessToken = 'your_access_token';  
12.	    var viewer = new Cesium.Viewer('cesiumContainer', {  
13.	        terrainProvider: Cesium.createWorldTerrain()  
14.	    });  
15.	  
16.	    var tileset = viewer.scene.primitives.add(  
17.	        new Cesium.Cesium3DTileset({  
18.	            url: Cesium.IonResource.fromAssetId(your_asset_id)  
19.	        })  
20.	    );  
21.	    viewer.zoomTo(tileset);  
22.	  </script>  
23.	</body>  
24.	</html>  

接下來呢?現在你已經知道如何設置一個基本的Cesium app,可以瀏覽Sandcastle上的代碼示例,來了解所有特性和一些常見的使用案例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章