Cesium制作鹰眼效果

        Cesium制作鹰眼效果就是在右下角放一个缩略的地球,转动大的地球的同时,也转动右下角的小地球,以保证随时可以看到一个地球的局部图,实际原理是在右下角放置一个div,也同时初始化为一个cesium的模型。在转动大的地球时,出发事件将转动的角度,缩放的大小也同步到右下角小的地球上,现实两个球的联动,下面是相关代码,想看效果可以将代码复制到html文件中,修改为自己的token,用浏览器打开查看效果。

<!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">
      <style>
        html,
        body,
        #cesiumContainer {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
    </style>
</head>
<body>
  <div id="cesiumContainer"></div>
  <div style="position:absolute;width:200px;height:200px;top:80%;left:90%" id="eye"></div>
  <div id="credit"></div>
  <script>
    // 设置token
    Cesium.Ion.defaultAccessToken = 'token';
	//大的地球正擦显示和相关控件
	var viewer = new Cesium.Viewer('cesiumContainer', {});
	//小的地球隐藏所有的控件
	var viewer1 = new Cesium.Viewer('eye',{
			geocoder:false,//查找位置工具
			homeButton:false,//返回视角的初始位置
			sceneModePicker:false,//选择视角的模式:2D,3D,哥伦布视图
			baseLayerPicker:false,//图层选择选择地图服务还是地形服务
			navigationHelpButton:false,//导航帮助按钮
			animation:false,//动画器件,可以旋转地球
			creditContainer:"credit",//
			timeline:false,//下方的时间轴,默认指示当前时间,允许用户点击跳转到指定时间
			fullscreenButton:false,//全屏显示
			vrButton:false // VR 按钮,右下角有个戴眼镜的按钮,点击可以看下效果
		});

	//设置鹰眼图中球属性,禁止拖动旋转等操作
	let control = viewer1.scene.screenSpaceCameraController;
	control.enableRotate = false;
	control.enableTranslate = false;
	control.enableZoom = false;
	control.enableTilt = false;
	control.enableLook = false;
	//设置同步的相关方法
	let syncViewer = function() {
		viewer1.camera.flyTo({
			destination: viewer.camera.position,
			orientation: {
				heading: viewer.camera.heading,
				pitch: viewer.camera.pitch,
				roll: viewer.camera.roll
			},
			duration: 0.0
		});
	};
	//小的地球同步到啊的地球角度位置等
	viewer.scene.preRender.addEventListener(syncViewer);//效果和第三种方式一样,成功
  </script>
 </div>
</body>
</html>

效果图 1694312526936.jpg 以上如有问题可以在评论区给我留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baker_zhuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值