首页 > 其他分享 >Cesium 飞入相关方法_leemraz的博客

Cesium 飞入相关方法_leemraz的博客

时间:2022-08-25 08:33:21浏览次数:74  
标签:viewer camera flyTo fromDegrees Camera Cesium leemraz 飞入

文章目录

官网API地址

1. Camera的flyHome方法

默认位置 Cesium.Camera.DEFAULT_VIEW_RECTANGLE
矩形框即视角范围

flyHome ( duration )Scene/Camera.js 1454

将相机飞到主视图。使用 Camera#.DEFAULT_VIEW_RECTANGLE进行设置3D场景的默认视图。二维和哥伦布视图的主视图显示了整个地图。

Name Type Description
duration Number 可选飞行持续时间(以秒为单位)。如果省略,Cesium会尝试根据航班要行驶的距离来计算理想持续时间。请参见 Camera#flyTo
// 默认矩形框设置为亚洲
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(51.096847,9.98438,150.589429,70.671623);
// 将相机飞到主视图。使用 Camera#.DEFAULT_VIEW_RECTANGLE 进行设置3D场景的默认视图。二维和哥伦布视图的主视图显示了整个地图。
let duration = 2;
viewer.camera.flyHome(duration)

2. Camera的flyTo方法

flyTo (options)
将相机从当前位置移动到新位置。

// 1. Fly to a position with a top-down view
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});

// 2. Fly to a Rectangle with a top-down view
viewer.camera.flyTo({
    destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
});

// 3. Fly to a position with an orientation using unit vectors.
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
    orientation : {
        direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734),
        up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339)
    }
});

// 4. Fly to a position with an orientation using heading, pitch and roll.
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
    orientation : {
        heading : Cesium.Math.toRadians(175.0),
        pitch : Cesium.Math.toRadians(-35.0),
        roll : 0.0
    }
});

3. Camera的flyToBoundingSphere方法

flyToBoundingSphere (boundingSphere, options )
将相机移到当前视图包含所提供的包围球的位置。
偏移是在以边界球的中心为中心的局部东-北-上参考系中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面下方。负俯仰角在平面上方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。
在2D和Columbus视图中,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。标题将与当地北部对齐。

var boundingSphere = new Cesium.BoundingSphere(Cesium.Cartesian3.fromDegrees(116.4, 39.9, 100), 15000);
 
// Override behavior of home button
viewer.homeButton.viewModel.command.beforeExecute.addEventListener(function(commandInfo) {
    // Fly to custom position
    viewer.camera.flyToBoundingSphere(boundingSphere);

    // Tell the home button not to do anything
    commandInfo.cancel = true;
});

// Set custom initial position
viewer.camera.flyToBoundingSphere(boundingSphere, {duration: 0});

4. Support Viewer’s zoomTo/flyTo with ImageLayer argument #3567

https://github.com/CesiumGS/cesium/pull/3567

var viewer = new Cesium.Viewer('cesiumContainer');
var layerRectangle = Cesium.Rectangle.fromDegrees(15.2, 10.9, 15.3, 11.0);
var layer = new Cesium.ImageryLayer(new Cesium.ArcGisMapServerImageryProvider({
    url : 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
}), {
    rectangle : layerRectangle
});
viewer.zoomTo(layer);
//viewer.flyTo(layer);

学习网址
Cesium中使用Primitive API 创建平面
百度坐标拾取工具

小小的感叹一下
平时方法不整理,到头来只是书签越来越多,学到的东西也不能变现。这可能就是写博客的价值吧!!!

本文转自 https://blog.csdn.net/Tmraz/article/details/109290798,如有侵权,请联系删除。

标签:viewer,camera,flyTo,fromDegrees,Camera,Cesium,leemraz,飞入
From: https://www.cnblogs.com/hustshu/p/16623014.html

相关文章

  • cesium教程4-用primitive加载glb和gltf格式的小模型
    primitive加载方法更底层,用起来更麻烦,但是效率更高。  完整示例代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</tit......
  • cesium教程4-用entity加载glb和gltf格式的小模型
      html示例如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</title><!--引用cesium的js和css,天地图的扩展js-->......
  • Cesium 粒子系统
    粒子系统的本质是向场景中添加了很多物体,用BillBoard技术展现。这种实现方式有一个麻烦的地方就是当视角变化(拉近、拉远、平移、旋转)时,粒子就会变化,甚至会消失,影响体验。......
  • cesium模型的本地加载模型
    需求目前有一个需求就是需要从本地拖拽glb文件模型到cesium地球中显示模型由于相关js库较多本文章就不涉及拖拽功能了思路第一种方案cesium通过Model.fromGltf函数来......
  • cesium基础-加载影像
    ImageryLayerCollection类Cesium.Viewer类对象中包含的imageryLayers属性就是ImageryLayerCollection类的实例,它包含了当前Cesium应用程序所有的ImageryLayer类对象,即所有......
  • cesium教程3-加载3dtile模型,并调整位置
      直接上示例代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</title><!--引用cesium的js和css,天地图的扩展js-->......
  • cesium教程2-加载显示地形地图
      上面地形数据,是调用cesium官方的地图服务,需要先注册cesium账户,配置cesium的账户token才行1、在线地形服务的示例代码如下<!DOCTYPEhtml><htmllang="en"><head......
  • cesium教程1-加载显示地图
    1、完整示例代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</title><!--引用cesium的js和css,天地图的扩展js--><......
  • cesium教程-无人机航拍倾斜摄影素材用ContextCapture转换成OSGB格式
    首先软件的下载和安装参考下面链接http://www.xue51.com/soft/53013.html 0、首先打开软件,要打开2个哦。打数据处理开后台ContextCaptureEngine打开处理工具Contex......
  • vuecli3+cesium开发环境搭建
    一、vue-cli3+cesium搭建步骤1、vuecreate'yourproject-name'新建你的项目2、安装cesium依赖npminstallcesium--save3、新建cesiumContainer.vue文件,src/views/......