Cesium入门(三)

目录

一、Cesium ion 简介

二、 Cesium ion 使用

三、切换默认的地图

 四、设置地形和光源信息

 五、覆盖home的默认方法


一、Cesium ion 简介

Cesium ion是一个提供瓦片图和3D地理空间数据的平台,Cesium ion支持把数据添加到用户自己的CesiumJS应用中。下面我们将使用Sentinal-2二维贴图和Cesium世界地形,二者都需要ion的支持。

二、 Cesium ion 使用

Cesium ion 访问地址icon-default.png?t=O83Ahttps://cesium.com/ion

  1. 首先需要去注册一个免费的Cesium ion账户
  2. 打开 Cesium ion然后注册一个新的账户
  3. 点击"Access Token",跳转到Access Tokens page页面
  4. 选择Default默认的access token拷贝到contents中

三、切换默认的地图

// 移除默认基础层 //多个地图可以叠加
viewer.imageryLayers.remove(viewer.imageryLayers.get(0))
// 添加Sentinel-2图像
viewer.imageryLayers.addImageryProvider(
    //Ion方式引入Bing Maps航拍标签 assetId的值是Cesium ion中 我们仓库中的地图id
    new Cesium.IonImageryProvider({ assetId: 3 })
    //url方式引入高德地图
    // new Cesium.UrlTemplateImageryProvider({
    // url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
    // })
)

 

 四、设置地形和光源信息

//装载世界地形
viewer.terrainProvider = Cesium.createWorldTerrain({
    //特效需要在服务器中存在
    //加载水流特效
    requestWaterMask: true,
    //加载光的特效
    requestVertexNormals: true,
})
//激活太阳
//viewer.scene.globe.enableLighting = true

 五、覆盖home的默认方法

//创建一个初始的相机视图
//从以度为单位的经度和纬度值返回一个Cartesian3位置。
var initialPosition = new Cesium.Cartesian3.fromDegrees(
  -73.998114468289017509,
  40.674512895646692812,
  2631.082799425431
)
//从角度返回一个新的HeadingPitchRoll实例。
var initialOrientation = new Cesium.HeadingPitchRoll.fromDegrees(
  -7.1077496389876024807,
  -31.987223091598949054,
  0.025883251314954971306
)
//设置主页试图
var homeCameraView = {
  //相机在WGS84(世界)坐标中的最终位置或从自上而下的视图中可见的矩形,设置终点位置
  destination: initialPosition,
  //一个包含方向和向上属性或标题、俯仰和滚动属性的对象
  orientation: {
    heading: initialOrientation.heading,
    pitch: initialOrientation.pitch,
    roll: initialOrientation.roll,
  },
}
// 设置初始视图
viewer.scene.camera.setView(homeCameraView)
// 添加一些相机飞行动画选项
//动画时常
homeCameraView.duration = 2.0
//最大高度的像素
homeCameraView.maximumHeight = 2000
//场地调整高度
homeCameraView.pitchAdjustHeight = 2000
//初始化为单位矩阵的不可变Matrix4实例
homeCameraView.endTransform = Cesium.Matrix4.IDENTITY
//覆盖默认的home键方法
viewer.homeButton.viewModel.command.beforeExecute.addEventListener(
  function (e) {
    e.cancel = true

    viewer.scene.camera.flyTo(homeCameraView)
  }
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值