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

入门指南(Getting Started)

学习使用全球地形、图像、3D瓦片和地理编码(geocoding)构建Cesium应用程序。

CesiumJS是一个应用于web 3D地图的JavaScript库。Cesium ion是发现3D内容和填充自己的数据流中心。CesiumJS和ion一起协同工作,能够构建世界级3D地图应用程序。

第一个应用程序(Your first app)

下面是你的第一个Cesium应用程序源码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src="https://cesium.com/downloads/cesiumjs/releases/1.78/Build/Cesium/Cesium.js"></script>
  <link href="https://cesium.com/downloads/cesiumjs/releases/1.78/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
  <div id="cesiumContainer" style="width: 700px; height:400px"></div>
  <script>
    Cesium.Ion.defaultAccessToken = 'your_access_token';
    var viewer = new Cesium.Viewer('cesiumContainer');
  </script>
</body>
</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,删除里面的所有内容,并使用上面的代码。   

点击 按钮,它将打开一个新的窗口作为Cesium应用的响应。当你修改代码时,视图将自动更新。

代码分解(Breaking down the code)

  1. 在HTML的head内容中包含CesiumJS库
<script src="https://cesium.com/downloads/cesiumjs/releases/1.78/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.78/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
  1. 创建一个HTML元素来保存CesiumJS widget:
<div id="cesiumContainer"></div>
  1. ion账户提供一个token来访问Bing底图。由于已经登录了Cesium ion,所以默认账户的token自动在本教程中使用:
Cesium.Ion.defaultAccessToken = '';
  1. 最后,创建一个顶部的Cesium widget,命名为Viewer,使用上面定义的HTML div元素:
var viewer = new Cesium.Viewer('cesiumContainer');

添加Cesium世界地形(Adding Cesium World Terrain)

Cesium World Terrain(Cesium世界地形)是一个高分辨率的全球地形asset,其保存在你的ion账户中。用以下代码代替创建的Viewer widget,将它添加到你的Cesium应用程序:

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

当你放大到例如“Grand Canyon,AZ”这样的地方,将看到Cesium世界地形的效果:

加载自己数据(Loading your own data)

你可以上传自己的数据到Ceisum ion,并将其瓦片化为3D Tiles,3D Tiles是一种对海量异构三维地理空间数据流的开放规范。在本教程中,我们提供带有单个建筑示例的KML/COLLADA包。使用它创建一个3D Tiles tileset,并将其添加到应用程序中。点击下载。   导航到ion,并将刚下载的AGI_HQ.kmz文件拖拽到页面任何位置,点击上传。   

然后在拼贴选项中选择Cesium World Terrain作为您的参考地形,以将建筑模型固定在地面上。

   上传完成后,ion将立刻开始tiling处理并在右上角报告进度。瓦片化完成后,将在左侧出现新asset选项,按页面右下角示例代码旁边的copy(复制)按钮。将结果复制到Glitch中,创建Viewer行之后。

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

使用一行代码,将程序的默认视图设置为tileset:

viewer.zoomTo(tileset)

祝贺!你已经创建了第一个Cesium app。 以下是完整的参考示例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src="https://cesium.com/downloads/cesiumjs/releases/1.78/Build/Cesium/Cesium.js"></script>
  <link href="https://cesium.com/downloads/cesiumjs/releases/1.78/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
  <div id="cesiumContainer" style="width: 700px; height:400px"></div>
  <script>
    Cesium.Ion.defaultAccessToken = 'your_access_token';
    var viewer = new Cesium.Viewer('cesiumContainer', {
        terrainProvider: Cesium.createWorldTerrain()
    });

    var tileset = viewer.scene.primitives.add(
        new Cesium.Cesium3DTileset({
            url: Cesium.IonResource.fromAssetId(your_asset_id)
        })
    );
    viewer.zoomTo(tileset);
  </script>
</body>
</html>

results matching ""

    No results matching ""