前言

 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.csdn.net/weixin_44402694/article/details/123110136)以下示例使用到的公共静态资料,不建议下载,建议官网自行下载超图Build资源,示例所涉及图片会在示例使用到时提供出来。如有需要可下载:[https://download.csdn.net/download/weixin_44402694/82180350](https://download.csdn.net/download/weixin_44402694/82180350)。场景分屏设置。

使用

文章最后附完整代码。

  • 效果





  • 完整代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>场景分屏设置</title><link href="./public/Build/Cesium/Widgets/widgets.css" rel="stylesheet" /><scripttype="text/javascript"src="./public/Build/Cesium/Cesium.js"></script><style>* {margin: 0;padding: 0;}html,body,#cesium-container {width: 100%;height: 100%;}.wrap {width: 220px;display: flex;flex-direction: column;position: fixed;left: 10px;top: 10px;box-sizing: border-box;padding: 10px;border: 1px solid #fff;background-color: #fff;z-index: 1;}.wrap #viewport-type {padding: 4px;}.panel-wrap li {display: none;}</style></head><body><div id="cesium-container" /><div class="wrap"><select id="viewport-type"><option value="NONE" selected>不使用分屏</option><option value="HORIZONTAL">水平分屏</option><option value="VERTICAL">垂直分屏</option><option value="TRIPLE">三视口</option><option value="VerticalTrisection">水平三视口</option><option value="QUAD">四视口</option></select><ul class="panel-wrap"><li><input type="checkbox" checked data-val="0" /> <span>一</span></li><li><input type="checkbox" checked data-val="1" /> <span>二</span></li><li><input type="checkbox" checked data-val="2" /> <span>三</span></li><li><input type="checkbox" checked data-val="3" /> <span>四</span></li></ul></div><script>let viewer = nullwindow.onload = function () {viewer = new Cesium.Viewer('cesium-container')setS3MServiceHandler()}// 添加由supermap iserver上发布的s3m服务 并设置其相关的颜色参数function setS3MServiceHandler() {const promise = viewer.scene.open('http://www.supermapol.com/realspace/services/3D-NewCBD/rest/realspace')Cesium.when(promise, (layers) => {listenSelectChangeHandler(layers)listenCheckboxChangeHandler(layers)})}// 监听下拉框的变化,控制触发对应的分屏function listenSelectChangeHandler(layers) {const viewportType = document.querySelector('#viewport-type')viewportType.addEventListener('change', () => {viewer.scene.multiViewportMode =Cesium.MultiViewportMode[viewportType.value] // 根据当前选择的类型设置分屏模式const lis = document.querySelectorAll('.panel-wrap li')initCheckboxModelRelatedHandler(lis, layers)showPanelByViewportTypeHandler(lis, viewportType.value)})}// 根据当前选择的分屏模式,使对应的checkbox显示function showPanelByViewportTypeHandler(lis, type) {switch (type) {case 'NONE': // 不使用分屏 不可以设置显示breakcase 'HORIZONTAL': // 水平分屏case 'VERTICAL': // 垂直分屏lis[0].style.display = 'block'lis[1].style.display = 'block'breakcase 'TRIPLE': // 三视口case 'VerticalTrisection': // 水平三视口lis[0].style.display = 'block'lis[1].style.display = 'block'lis[2].style.display = 'block'breakcase 'QUAD': // 四视口Array.from(lis).forEach((oli) => {oli.style.display = 'block'})break}}// 初始化checkbox选中状态、模型的显示状态、隐藏所有的checkboxfunction initCheckboxModelRelatedHandler(lis, layers) {Array.from(lis).forEach((oli, idx) => {// 先隐藏所有,再根据所选的类型控制对应的显示oli.style.display = 'none'const inp = oli.querySelector('input') // 手动设置所有的checkbox为选中inp.checked = true})layers.forEach((layer) => {// 每次切换都让最多的一种情况即四视口模式的所有的模型都初始化为显示for (let i = 0; i < 4; i++) {// 循环四次代表四个视口均设置显示layer.setVisibleInViewport(i, true)}})}// 监听checkbox的选中的变化function listenCheckboxChangeHandler(layers) {const checks = document.querySelectorAll('.panel-wrap input')Array.from(checks).forEach((check) => {check.addEventListener('change', () => {layers.forEach((layer) => {// 循环所有的模型,根据当前的选中状态,控制对应视口的模型的显隐layer.setVisibleInViewport(check.getAttribute('data-val'),check.checked)})})})}</script></body>
</html>

【超图+CESIUM】【基础API使用示例】09、超图|CESIUM - 场景分屏设置相关推荐

  1. 【超图+CESIUM】【基础API使用示例】10、超图|CESIUM - 场景出图、下载当前截图

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  2. 【超图+CESIUM】【基础API使用示例】04、超图|CESIUM - 设置地图风格样式

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  3. 【超图+CESIUM】【基础API使用示例】42、超图|CESIUM - 绘制编辑线段|读取kml文件绘制编辑|导出kml线段数据

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  4. 【超图+CESIUM】【基础API使用示例】38、超图|CESIUM - 特效-云层设置

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  5. 【超图+CESIUM】【基础API使用示例】41、超图|CESIUM - 特效-雪景设置

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  6. 【超图+CESIUM】【基础API使用示例】43、超图|CESIUM - 绘制编辑面|读取kml文件绘制编辑|导出kml面数据

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  7. 【超图+CESIUM】【基础API使用示例】22、超图|CESIUM - 标绘面:Cesium.DrawHandler绘制面Cesium.DrawMode.Polygon

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  8. 【超图+CESIUM】【基础API使用示例】16、超图|CESIUM -设置地球模式:椭球模式、圆球模式

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  9. 【超图+CESIUM】【基础API使用示例】50、超图|CESIUM - moveLeft\moveRight\moveForward\moveBackward实现运动中的碰撞检测效果

    前言 由于项目业务需要,所以实现了这四个api的碰撞检测效果. 核心是通过ray射线来做碰撞检测. 代码目录结构 核心代码 <ul class="btn-list">& ...

  10. Cesium基础使用介绍

    既然给我发了参与方式,不参加似乎有点不给人面子,反正也没多少人看我的博客,那我就试试吧,也欢迎大家自己参与:2017年度全网原创IT博主评选活动投票:http://www.itbang.me/goVo ...

最新文章

  1. 数据同步关于去除乱码插入mysql数据库
  2. linux怎么查端口是否被占用,LINUX中如何查看某个端口是否被占用
  3. 【渝粤题库】陕西师范大学100071教育学作业(高起本)
  4. 误码率越高越好还是越低越好_ISO永远都是越低越好?不一定!这些情况下要用高 ISO!...
  5. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc...
  6. 东北大学c语言及程序设计,东大20秋学期《C语言及程序设计》在线平时作业1参考...
  7. Linux运行8086代码,* linux下编译,链接,运行,汇编程序
  8. 基于顺序存储结构的图书信息表的修改(C++)
  9. linux操作系统-SSH原理介绍与免密运用与远程命令操作
  10. FLEX APIs、Libs、Components
  11. 关于ashx的基本应用
  12. NSURLConnect 的简单实用(iOS8淘汰)
  13. 昼夜双色导航主题模板 WordPress导航模板
  14. 生物(一)ctDNA突变检测应用于肿瘤早期筛查
  15. java零基础学习第七天
  16. Android Studio项目中常见的需要自行创建的资源文件夹的位置(assets、raw、menu、anim等)
  17. 感受美国小学生的幸福校园生活! (转)
  18. 极光开发者周刊【No.0730】
  19. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java青岛恒星科技学院机房管理系统0k0u9
  20. JAVA 使用if选择结构判断某一年份是否是闰年。闰年的条件:普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年);世纪闰年:能被400整除的为世纪闰年。

热门文章

  1. spring视频教程下载
  2. 统一建模语言UML简答题/期末考试分享
  3. Winform支付宝扫码支付
  4. 爱了爱了!阿米洛熊猫机械键盘cherry樱桃粉轴白灯,写代码神器!免费包邮送到家!...
  5. Javascript闭包 ,JS中没有public,private等修饰词,里面的变量就分为globle和局部变量
  6. 银行行号和银行代码是一样的吗?区别是什么?
  7. ISO 2768-2 标准
  8. 快速批量执行redis命令
  9. es6阮一峰-import、export学习
  10. java创建线程的5种方法