目录

1、放大

2、缩小

3、回归初始位置

4、全屏

5、前一视图和后一视图


地图通用工具:包括放大、缩小、二三维切换、回归初始位置、前一视图、后一视图等等

老规矩看下效果:...

这有啥好看的,直接看封装的方法 js的大体样子吧,如下:

1、放大

/*** 放大* @param viewer*/
const zoomIn = (viewer)=>{let position = viewer.camera.position;let cameraHeight = viewer.scene.globe.ellipsoid.cartesianToCartographic(position).height;// 每次放大 10 倍,参数可改let moveRate = cameraHeight / 10.0;viewer.camera.moveForward(moveRate);
}

2、缩小

/*** 缩小* @param viewer*/
const zoomOut =(viewer)=>{let position = viewer.camera.position;let cameraHeight = viewer.scene.globe.ellipsoid.cartesianToCartographic(position).height;// 每次缩小 10 倍,参数可改let moveRate = cameraHeight / 10.0;viewer.camera.moveBackward(moveRate);
}

3、回归初始位置

//3D初始位置
const originLocation3D ={destination: Cesium.Cartesian3.fromDegrees(117.28, 31.86, 100000.0)
}/*** 回到初始位置* @param viewer*/
const goHome = (viewer)=>{viewer.camera.flyTo(originLocation3D,{duration:1000})
}

4、全屏

/*** 全屏* @param viewer* @param domId*/
const fullScreen = (viewer,domId)=>{// Cesium.Fullscreen.requestFullscreen(document.getElementById('domId'));//或 按需Cesium.Fullscreen.requestFullscreen(viewer.scene.canvas)
}

5、前一视图和后一视图

let viewPosition=[];
let viewIndex = -1;
let addviewPositionFlag = false;
let _is3D=true;/*** 初始化地图移动监听事件* @param viewer*/
const initWatchMoveEvent=(viewer)=>{viewer.camera.moveEnd.addEventListener(()=>{if(!addviewPositionFlag){if(_is3D){viewPosition.push({destination:new Cesium.Cartesian3(Number(viewer.camera.position.x),Number(viewer.camera.position.y),Number(viewer.camera.position.z)),orientation:{heading : viewer.scene.camera.heading,pitch :viewer.scene.camera.pitch,roll :viewer.scene.camera.roll}})}else{let cp = viewer.camera.positionCartographic;viewPosition.push({destination:new Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(cp.longitude).toFixed(6),Cesium.Math.toDegrees(cp.latitude).toFixed(6),cp.height),})}viewIndex++;}addviewPositionFlag=false;})
}/*** 返回上一视图* @param viewer*/
const previousView =(viewer)=>{if (viewIndex != 0) {viewer.camera.flyTo(viewPosition[viewIndex-1])addviewPositionFlag = true;viewIndex--;}
}/*** 返回下一视图* @param viewer*/
const nextView =(viewer)=>{if (viewPosition.length == 0) {return;}if (viewIndex != viewPosition.length - 1) {viewer.camera.flyTo(viewPosition[viewIndex + 1])addviewPositionFlag = true;viewIndex++;}
}/*** 重置*/
const _resetWatchEvent=()=>{viewPosition = [];viewIndex = -1;addviewPositionFlag = false;
}

页面调用:

初始化viewer 后 首先调用

//监听移动事件
​​​​​​​initWatchMoveEvent(viewer);

tips:我这方法适用于进入地图一开始就设置了初始位置的(即默认不是整个球的),如果你没设置初始位置,则需要部分修改,否则会移动2次以上才会生效

cesium 实战记录(六)地图通用工具方法的封装相关推荐

  1. Cesium实战记录(八)三维风场+风速热力图(水平+垂直)

    目录 老规矩首先看下效果 一.风场 1.数据 2.原理剖析 首先,第一步就是构造网格数据 然后,撒粒子 再然后,起风吧 二.热力场 老规矩首先看下效果 风场v1.0(平面版,只有U V 方向风速) 三 ...

  2. cesium 实战记录(一) 底图动态配置,前端实现切换

    上帝希望: 有个底图管理功能,用户配置好需要展示的底图后,在地图页面会出现相应的底图可供切换: 大概就这样吧底图切换. 思考: 1.首先要想动态管理底图,地图页面动态渲染底部的basemap组件. 那 ...

  3. Cesium实战记录(五)天际线分析

    老规矩看下效果:(版本是1.94的) 实现思路:(引用网上大佬的) 利用Cesium 的边缘检测和后期处理效果的叠加.即在地图上检测此视角下的地形边缘,叠加标价效果层,叠加针对边缘实例和前一个边缘效果 ...

  4. Cesium 实战记录(四) 绘制点线面的工具封装

    老样子先看效果: 画点: (tips:我的代码里手动将点的高度 提高了50m) 画线: 画面: 看下封装的类结构吧: 看下调用的操作页面: vue页面: 引入工具类: js:初始化工具,然后激活点线面 ...

  5. python ui自动化配置文件,python UI自动化实战记录八:添加配置

    添加配置文件写入测试地址等,当环境切换时只需修改配置文件即可. 1 在项目目录下添加文件 config.ini 写入: [Domain] domain = http://test.domain.cn ...

  6. Linux实战案例(4)CentOS清除用户登录记录和命令历史方法

    CentOS清除用户登录记录和命令历史方法 清除登陆系统成功的记录 [root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等 ...

  7. Cesium 实战 - 最新版(1.104.0)通过异步方式初始化地球,加载影像以及高程图层

    Cesium 实战-最新版(1.104.0)通过异步方式初始化地球,加载影像以及高程图层 遇到问题 初始化底图 初始化高程(监听载入完成事件,开启关闭高程) 初始化 3dtile 在线示例 Cesiu ...

  8. 深度学习实战(六):从零开始实现表情识别

    深度学习实战(六):从零开始实现表情识别 1. 项目简介 2. 数据获取 2.1 数据爬取 2.2 数据整理 2.3 数据清洗 2.4 提取嘴唇区域 3. 模型训练 3.1 数据接口准备 3.1.1 ...

  9. python数据分析与挖掘项目实战记录

    python数据挖掘项目实战记录 取自<Python数据分析与挖掘实战>一书,整理各个项目中用到的数据处理方法: 数据预处理方法 建立模型方法 绘制图形 对于分类问题:用模型分类:混淆矩阵 ...

最新文章

  1. STM32控制OLCD显示中英文(NB-IoT专栏—基础篇6)
  2. Linux 计划任务 访问网页
  3. oracle limsize,Oracle9i AIX上单进程占用内存过多问题
  4. Book Review 《构建之法》-2
  5. 20.4. myisamchk — MyISAM Table-Maintenance Utility
  6. Python 分析 35 年的考研英语真题词汇,解读孤独的考研大军!
  7. vscode 网页版
  8. layer normalization 缺点_优缺点并存的星越,用车感受还是不错的!
  9. php获取当前进程的id
  10. iOS中相对1970的时间转换为现在时间
  11. 【stm32f407】硬件介绍
  12. Chrome屏蔽广告
  13. python怎么用圆周率_用python程序求圆周率到任意位
  14. JVM 上篇(4):虚拟机栈
  15. 彻底搞清楚STM32CubeMX生成工程再次下载后SWD无法使用问题
  16. 从ECU和CPU视角理解AutoSar网络管理
  17. 本地项目关联远程git仓库
  18. 微信H5网页分享只显示链接处理办法
  19. openssl命令查看证书有效期_kubeadm初始化k8s集群延长证书过期时间
  20. 毕达哥拉斯定理(又称 勾股定理)的证明

热门文章

  1. SpringBoot集成MinIo实现资源库功能
  2. 搜索引擎排名优化方法
  3. 用VB设计控制上网时间程序Java教程
  4. Cannot download sources Sources not found for
  5. Java读取mapinfo格式_超齐全的MapInfo数据格式详细介绍
  6. docker pull拉取镜像原理_Dockerfile镜像细节
  7. ibm websphere_IBM WebSphere开发者技术期刊,使用Tivoli Access Manager和WebSphere Portal配置单点登录
  8. ldap修改管理员密码
  9. 南开大学数学院本科生课程信息汇总表(2013.11.19)
  10. 有限布尔代数的表示理论:由集合生成的布尔代数