90 cesium的四种点击拾取方法 矩阵变换 本地坐标转世界 禁止场景/鼠标左右拖动、禁用中键 修改点击infoBox内容 3Dtile性能优化 cesium+vue

1.cesium的四种点击拾取方法

Cesium的四种点击拾取方法 - 掘金Cesium的四种点击拾取方法 1、viewer.scene.pick() 通过坐标位置,拾取实体(Entity),图元(Primitive),3DTiles对象,返回的是scene中指定位置最上层的https://juejin.cn/post/7223981150775066681

2.cesium获取鼠标位置总洁

cesium 实战记录(三)获取鼠标位置总结_viewer.camera.getpickray_Giser_往事随风的博客-CSDN博客cesium 实战记录(三)获取鼠标位置总结,包括pickPosition、pickEllipsoid、globe.pickhttps://blog.csdn.net/KK_bluebule/article/details/126379004

3.矩阵变换

Cesium之矩阵变换_cesium 矩阵_丰色木夕的博客-CSDN博客齐次变换2. Cesium矩阵变换2.1 创建矩阵创建一个矩阵的方法// 创建一个3X3 的旋转矩阵let m3 = new Cesium.Matrix3(1,0,0,0,1,0,0,0,1)// 创建一个4X4 旋转平移变换矩阵let m4 = new Cesium.Matrix4(1, 0, 0, 0,0, 1, 0, 0,0, 0, 1, 0,0, 0, ...https://blog.csdn.net/youlinhuanyan/article/details/103242162?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168687820316782427450683%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168687820316782427450683&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-103242162-null-null.142%5Ev88%5Einsert_down28v1,239%5Ev2%5Einsert_chatgpt&utm_term=Cesium%20%E7%9F%A9%E9%98%B5%E5%8F%98%E6%8D%A2&spm=1018.2226.3001.41874.本地坐标转世界坐标

// 获取一个WGS84点的坐标点对应的世界坐标
let pos =  Cesium.Cartesian3.fromDegrees(-114.0, 50.0, 50.0);
// 本地坐标在世界坐标中的变换矩阵
let _LocalToWorldMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(pos);
// 在本地坐标
let _localPos = new Cesium.Cartesian3(0, 10, 20);
// 将本地坐标转世界坐标
let _worldPointX = Cesium.Matrix4.multiplyByPoint(_LocalToWorldMatrix , _localPos, new Cesium.Cartesian3());

简单理解 

let modelMatrix4= Cesium.Transforms.eastNorthUpToFixedFrame(世界笛卡尔坐标原点);
     //获得本地转世界坐标变换矩阵

本地坐标 * 变换矩阵 得到世界坐标

 Cesium.Matrix4.multiplyByPoint(变换矩阵, 本地坐标, new Cesium.Cartesian3());

5.禁止场景/鼠标左右拖动、禁用中键

//cesium禁止鼠标左键拖动地图、中键转换视角 
viewer.scene.screenSpaceCameraController.tiltEventTypes = [];
viewer.scene.screenSpaceCameraController.enableRotate = false;
       
// 如果为真,则允许用户旋转相机。如果为假,相机将锁定到当前标题。此标志仅适用于2D和3D。
viewer.scene.screenSpaceCameraController.enableRotate = false

// 如果为true,则允许用户平移地图。如果为假,相机将保持锁定在当前位置。此标志仅适用于2D和Columbus视图模式。
viewer.scene.screenSpaceCameraController.enableTranslate = false;

// 如果为真,允许用户放大和缩小。如果为假,相机将锁定到距离椭圆体的当前距离
viewer.scene.screenSpaceCameraController.enableZoom = false;

// 如果为真,则允许用户倾斜相机。如果为假,相机将锁定到当前标题。这个标志只适用于3D和哥伦布视图。
viewer.scene.screenSpaceCameraController.enableTilt = false;

6.Cesium:修改点击显示的infoBox内容

Cesium:修改点击显示的infoBox内容_wx612dcbdbaa821的技术博客_51CTO博客Cesium:修改点击显示的infoBox内容,修改点击显示的infoBox内容https://blog.51cto.com/u_15349906/5089030

7.3dtile性能优化

3D Tiles性能优化 - 简书在处理大规模3D数据时,由于数据量过大、网络传输速度慢、图形渲染复杂等原因,会导致3D应用程序的性能下降。因此,需要对3D数据进行性能优化,以提高应用程序的交互性能和用户体验...https://www.jianshu.com/p/85046306f3b1

8.cesium+vue

vue 中使用 cesium_vue使用cesium_我是ed.的博客-CSDN博客vue 中使用 cesium我是在 vue 项目里面使用的 cesium,但是呢,有点问题,就是有些语法在js转vue的时候有些许的限制,比如说js中相对路径引入文件是一切OK的,vue 也能解决,但是呢,在引入的文件中又引用了其他的文件,vue 处理起来就不是特别的好用,所以说,我是直接在 vue 文件里面使用 iframe 标签引入的 html 文件来实现接入的,而vue和iframe之间的通信采用的 postMessage 方式实现,下面就稍微介绍一下。vue项目引入cesium这个相对来说_vue使用cesiumhttps://blog.csdn.net/weixin_42776111/article/details/122179711 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值