首页 > 其他分享 >Cesium做镜头飞入目标的动画

Cesium做镜头飞入目标的动画

时间:2023-09-09 10:04:15浏览次数:29  
标签:动画 镜头 geojson 设置 Cesium 飞入

很多时候需要实现一个镜头飞入目标的动画效果,也就是刚进入页面的时候从默认位置旋转地球到目标点,并逐渐放近镜头的动画,Cesium提供一个fly的动画效果,设置目标点的经纬度和高度,以及设置对准目标点时镜头的角度,这里根据上一篇的内容将镜头逐渐拉到中国地图中首都北京的位置,并设置动画时长为5秒,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <!-- Include the CesiumJS JavaScript and CSS files -->
  <script src="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Cesium.js"></script>
  <link href="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
  <div id="cesiumContainer"></div>
  <div id="credit"></div>
  <script>
    // 设置token
    Cesium.Ion.defaultAccessToken = 'token';
	//初始化div容器为cesium
	var viewer = new Cesium.Viewer('cesiumContainer');
	
	//加载geojson文件
	let geojson = Cesium.GeoJsonDataSource.load('china.json', {
		//设置边框为蓝色
        stroke: Cesium.Color.BLUE,
		//设置填充区域为半透明的粉色
        fill: Cesium.Color.PINK.withAlpha(0.5),
		//设置边框宽度为3
        strokeWidth: 3
    })
	//将geojson文件添加到场景中
	viewer.dataSources.add(geojson);
	// 设置目标位置的经纬度和高度
	var destination = Cesium.Cartesian3.fromDegrees(115.7, 39.54, 100000); 
	var orientation = {
	  heading: Cesium.Math.toRadians(0), // 水平方向的旋转角度
	  pitch: Cesium.Math.toRadians(-90), // 俯仰角度
	  roll: 0 // 翻滚角度
	};
//摄像机飞入操作,设置目标点和相机角度,以及整个过程的动画时长,Cesium会根据整个动画时长来设置飞入动画的整个事件进度
	viewer.camera.flyTo({
	  destination: destination,
	  orientation: orientation,
	  duration: 5 // 过渡动画的持续时间(秒)
	});
	
  </script>
 </div>
</body>
</html>

因为这里不支持上传视频,就不放效果图了,想看效果可以把上面部分的代码复制下来,设置好token和geojson文件,打开看下效果,如果有问题可以在评论区给我留言。

标签:动画,镜头,geojson,设置,Cesium,飞入
From: https://blog.51cto.com/BakerZhuang/7417346

相关文章

  • WPF 使用Image实现动画旋转Loading
    首先需要有一个Loading的图片,(白色背景,白色小圆圈,所以显示看不到): 创建一个用户控件,实现动画的功能:<UserControlx:Class="K.Controls.Controls.LoadingImage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/......
  • transition动画和transition-group动画组
    1.transition和transition-group介绍transition会在一个元素或组件进入和离开DOM时应用动画transition-group会在一个v-for列表中的元素或组件被插入,移动,或移除时应用动画区别2.transition2.1基本用法2.2name属性3.transition-group4.参考https://blog......
  • Cesium地形抬升效果怎么做?
    地形抬升的思路是什么也需要切分3角面?改地形顶点数据 还是改vs着色器呀?如果需要改源码的话,怎么改?来源:Cesium深入浅出群(854943530)......
  • 记录--CSS 滚动驱动动画 scroll()
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助CSS滚动驱动动画scroll()animation-timeline通过scroll()指定可滚动元素与滚动轴来为容器动画提供一个匿名的scrollprogresstimeline.通过元素在顶部和底部(或左边和右边)的滚动推进scrollprogresst......
  • MASM32编程状态栏显示字符动画,按钮跑马灯
    一、需求分析由于sysInfo扫描的内容比较多,打算为它增加一点动画效果,提醒用户程序正在运行,耐心等待。二、构建测试窗口测试窗口上放置有一个按钮,按钮上的初始文字是“开始扫描”;并使用状态栏,状态栏初始状态不显示文字。;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<......
  • 如何将枯燥的大数据呈现为可视化的图和动画?
    在数字时代,大数据已经成为商业、科学、政府和日常生活中不可或缺的一部分。然而,大数据本身往往是枯燥的、难以理解的数字和文字,如果没有有效的方式将其可视化,就会错失其中的宝贵信息。以下是一些方法,可以将枯燥的大数据变成引人入胜的可视化图和动画。首先,选择适合你需求的数据......
  • Cesium绘制一个正方体
    这节讲在cesium中绘制一个正方体,与threejs类似,在一个场景中添加一个正方体就好了,设置正方体的长宽高和位置,不过绘制的方式和threejs有很大的区别,这里还是用的类似百度echarts的绘制方式,通过json格式的配置文件描述正方体的长宽高和位置,以下是相关源码,可以替换掉token后复制到html文......
  • 一个CSS动画的demo
       .lineBarDis{height:8px;background-image:linear-gradient(toright,#011c720%,#c7ced2100%);animation:myAnimation1.5sinfinite;/*设置动画为2秒钟的时间,并无限循环*/}@keyframesmyAnimation{0......
  • 使用css3给网页元素出场动画让页面动起来
    使用css3给网页元素出场动画让页面动起来一般情况下网页元素都是静态显示的,能不能做一个幻灯片那样增加个动画出场效果呢这里使用css实现简单效果css样式test.css*,*:after,*::before{ -moz-box-sizing:border-box; box-sizing:border-box; }body,h1,h2,h3,h4,h5,h......
  • 开发指导—利用CSS动画实现HarmonyOS动效(一)
    注:本文内容分享转载自HarmonyOS Developer官网文档一. CSS语法参考CSS是描述HML页面结构的样式语言。所有组件均存在系统默认样式,也可在页面CSS样式文件中对组件、页面自定义不同的样式。请参考通用样式了解兼容JS的类Web开发范式支持的组件样式。尺寸单位● 逻辑像素px(文档中以......